2011-10-17 2 views
6

모두JSF 세션 관리 및 튜닝

JSF 애플리케이션이 사용자별로 사용하는 세션 메모리 양을 줄이는 방법을 조사하고 있습니다.

우리는에서 MyFaces 1.1.7를 사용하고 토마 호크 (이 시간에 이러한 항목 중 하나를 업그레이드 할 수 없음) IBM 웹 스피어 7.0 패치 19에서 실행 1.1.5

IBM의 가이드 라인은 세션 크기가되어야한다는 것입니다 5k 미만 - 서버 및 세션 복제의 성능에 영향을 미치지 않도록 평균 2.5k. 우리는 현재 Memory to Memory를 사용하고 있지만 IBM이 제안한대로 데이터베이스로 이동할 것입니다.

저희 사이트는 사용자 당 약 35M에서 실행되었습니다. 뷰 상태 수를 100에서 10으로 변경하여 4M 정도로 떨어 뜨립니다.

우리는 현재 세션 범위이고 범위를 요청하도록 변경중인 여러 백킹 빈을 가지고 있습니다.

또한 다음을 발견했습니다 : http://www.econsulting.nl/images/pdf/Tuning%20JSF%20Applications-%20J-Spring%202008.pdf JSF가 페이지의 특정 컨텐츠를 처리하는 방법에 관한 많은 정보가있는 것 같습니다. 아직 조사가 진행 중입니다.

관리 백킹 빈이 세션 또는 요청 범위인지 여부와 관계없이 뷰 상태에도 여전히 해당 빈과 해당 내용이있는 어딘가를 읽었습니다. 따라서 뷰 상태 크기는 변경되지 않습니다. 이것에 대한 설명을 원합니다.

JSF 애플리케이션이 주어진 사용자 세션에 많은 메모리를 소비하는 것과 동일한 문제를 겪고있는 다른 질문이 있습니까?

JSF를 사용할 때이 크기를 줄일 수있는 가장 좋은 방법은 무엇입니까?

JSF 애플리케이션을 실행할 때 IBM WebSphere에서 세션 복제와 관련된 문제가 있습니까?

JSF/MyFaces가 힙 메모리를 사용하는 방법에 관한 문서가 있습니까? Young 대 old입니까, 아니면이 범위에서 고려해야합니까? 가비지 수집 조정?

결과로 볼 때 사용자가 다른 서버로 홉을 돌리면 데이터 크기와 복제 시간으로 인해 세션 데이터가 존재하지 않습니다. 사용자 경험 문제.

세션의 개체 변경 사항이 올바르게 업데이트되지 않았으며 모든 세션 특성이 기록되도록 설정을 사용자 지정하는 일부 세션 관리 조정을 수행 한 것으로 나타났습니다. .jar 파일을 보면 myFaces가 세션의 객체 내용이 바뀔 때 올바르게 호출하는 것처럼 보입니다. 그래서 WebSphere session listener가 그 변화를 감지해야합니다.

+0

를 지원하는지 모르겠습니다. – Ben

+1

web.xml에는 세션에 보관되는보기의 수를 줄일 수있는 구성 설정이 있습니다. 최근에 우리는 3으로 줄었고 사용자 세션 크기가 많이 떨어졌습니다. 현재 우리가 목표로 삼고있는 것은 주어진 사용자의 1M 세션 크기입니다. 이렇게하면 원래 문제에서 제공된 링크를 기반으로 페이지의 일부를 다시 실행하면서 세션 범위 인 빈 수를 줄일 수 있습니다. – boyd4715

답변

2

당신은 클라이언트에서 뷰 상태를 저장 시도 할 수 있습니다,하지만 난에서 MyFaces 1.1.7가 이미 세션 상태의 크기를 감소하는 방법 궁금이