2013-02-10 2 views
17

저는 금융 분야에서 일하고 있으며 대형 중량 시스템 개발을 위해 Vaadin 7을 선택하려고합니다.Vaadin의 대형 시스템 메모리 풋 프린트

하지만 Vaadin이 모든 세션을 세션 상태로 유지하기 때문에 대규모 시스템에서 Vaadin 메모리 사용량이 약간 걱정됩니다. 즉, 모든 새 사용자에 대해 모든 응용 프로그램 상태가 메모리에 저장됩니다.
우리는 모노 리식 시스템을 구축 할 수 없습니다. 시스템은 확장 가능하고 민첩해야합니다. 우리는 거대한 고객 기반을 가지고 있기 때문에 쉽게 맞춤화 할 수 있어야하고 성장할 준비가되어 있어야합니다.

Vaadin에서 이러한 문제를 최소화하거나 제거하는 방법에 대한 경험과 가능한 해결 방법을 알려주십시오.

+0

몇 명의 사용자가 응용 프로그램을 사용합니까? –

+1

20,000 명 이상의 동시 사용자 –

답변

8

난 당신이 여기에보고해야한다고 생각 : https://vaadin.com/blog/-/blogs/vaadin-scalability-study-quicktickets

플러스, 나는 생산 만약 angel를 실행하는 사람들이 다음과 같은 정보를 발견했다.

발라 Hódossy :

우리는 10 개 이상의 000 사용자와 백 오피스 시스템을 가지고있다. 매일 사용자 번호는 약 3000이지만 그 중 절반은 시스템을 8 시간 로그 아웃없이 사용합니다. Liferay 6.0.5 Tomcat 번들과 Vaadin을 포틀릿으로 사용합니다. 우리의 두 서버는 48GB RAM을 가지고 있으며 Tomcat에 24GB 힙을 제공합니다. DB에 18 GB가 있고 나머지는 시스템입니다. 세션크기, 동시 사용자 및 활동에 대한 힙을 측정하십시오. 메모리가 많을수록 은 거의 발생하지 않지만 전체 GC가 길어집니다. 우리는 Tomcat 의 수를 늘리고 힙을 줄일 계획입니다. 서버를 측정 할 때는 메모리를 조금 더 추가하십시오. 비용이 감소보다 중요하면 프로세서 비용이 많이 들고 RAM을 추가로 구입하십시오. 대부분의 시간은 조금 튜닝을하면 귀중한 것입니다 .

피에르 에마뉘엘 그로스 (50 concurent 사용자와 PostgreSQL을 9 50000 ulimit를 사용하여 연결 서버 3기가바이트 2 코어 부두 1000 dayly 사용자는 heavyly 순수한 angel이라는 프로그램을 사용

들어 수영장이 사용됩니다). 소프트웨어 부분에서 필자는 ehcache를 사용하여 DTO 객체와 순수 JDBC를 캐싱했습니다.

+0

정보를 제공해 주셔서 감사합니다. –

14

우리 제품을 개발하는 동안 우리는 기본 Vaadin 아키텍처를 사용하여 메모리 공간이 많이 소모된다는 문제에 직면했습니다.

바아 진 아키텍처는 이벤트에 의해 구동되는 구성 요소를 기반으로합니다. 구성 요소를 사용하면 밀접하게 결합 된 응용 프로그램을 만드는 것이 매우 간단합니다. 그 이유는 구성 요소가 계층 구조로 구성되기 때문입니다. 마치 피라미드와 같습니다. 더 큰 응용 프로그램이 빌드됩니다. 큰 피라미드는 각 사용자에 대한 세션에 저장됩니다.

메모리 할당을 크게 줄이기 위해 이전 학교 상태 관리를 사용하여 백그라운드에서 포괄적 인 이벤트 모델을 사용하여 애플리케이션에 대한 페이지 기반 접근 방식을 만들었습니다. XML 형식의 Statechart 표기법을 기반으로합니다.

결과적으로 세션은 Stateflow 구성에 의해 설명 된 사용자 워크 플로 중에 방문한 페이지 만 유지합니다. 사용자가 워크 플로를 완료하면 모든 페이지가 가비지 수집기에서 수집되도록 해제됩니다.

우리는 차이점을 확인하기 위해 응용 프로그램에서 작업하는 사용자에게 할당 된 메모리를 비교하는 몇 가지 테스트를 수행했습니다. 개발

응용 프로그램 : - 우리는 매우 행복하다 2메가바이트

까지 밀접하게 결합 접근 방식

  • 사용자 느슨한 결합 접근 방식
  • 당 힙의 15메가바이트 5에서 소비 결과적으로 4GB RAM을 사용하여 대형 시스템을 서버 당 최대 1000-1500 명의 동시 사용자로 확장 할 수있게되었습니다.

    거의 잊어 버렸습니다. 우리는 Lexaden Web Flow 라이브러리를 사용했습니다. 그것은 아파치 라이센스입니다.

+0

Aliaksei, 감사합니다! 자세한 내용은 연락을 바랍니다. –

+1

아무 문제없이 연락을 취하거나 [enterprise sampler] (http://samples.lexaden.com)를 사용해 볼 수도 있습니다. –

관련 문제