본문으로 건너뛰기

3.1. 세션 모니터링

운영에서 무엇을 보게 되나

OPENMARU Cluster 를 적용하면 세션이 WAS 밖의 데이터그리드로 옮겨 갑니다. 그래서 평소에 살펴야 할 것도 달라집니다.

궁금한 것어디서 답을 얻나
지금 몇 명이 접속해 있나활성 세션 수 지표
접속이 늘고 있나 줄고 있나초당 세션 생성·소멸 수
세션이 메모리를 얼마나 쓰나세션 메모리 사용량 지표
특정 사용자의 세션에 무엇이 담겼나세션 속성 조회
중복 로그인이 실제로 일어나고 있나중복 로그인 횟수 지표
응답이 느린데 세션이 원인인가세션 수·메모리 사용량의 변화 추이

이 값들은 모두 MBean 으로 나옵니다. 별도의 화면이나 에이전트를 설치하지 않아도 됩니다.

세션 수가 늘어날 때 무엇을 하나

세션이 늘어 데이터그리드가 부족해지면 데이터그리드 노드를 추가합니다. WAS 는 손대지 않습니다. 판단 기준은 1부 "데이터그리드는 몇 대로 구성하나" 를 참고하십시오.

WAS 인스턴스를 늘리거나 줄이는 것은 세션과 무관하게 할 수 있습니다. 세션이 WAS 밖에 있으므로 인스턴스를 재시작해도 사용자는 영향을 받지 않습니다.

문제가 생겼을 때 확인 순서

증상먼저 볼 지표무엇을 뜻하나
사용자가 자꾸 로그아웃된다활성 세션 수, 소멸 수소멸 수가 급증하면 타임아웃 설정이나 저장소 연결을 확인합니다
응답이 느리다세션 메모리 사용량세션 하나가 크면 요청마다 오가는 데이터가 많아집니다
메모리 부족 경고세션 메모리 사용량, 활성 세션 수세션에 큰 객체를 담고 있지 않은지 봅니다
한 계정이 여러 곳에서 쓰인다중복 로그인 횟수값이 늘고 있으면 계정 공유를 의심합니다
특정 인스턴스만 느리다인스턴스별 활성 세션 수값이 한쪽으로 쏠리면 로드 밸런서 설정을 확인합니다

MBean 모니터링이란

MBean(Managed Bean) 은 자바 애플리케이션이 자신의 상태를 밖으로 알려 주는 표준 방법입니다. JMX(Java Management Extensions)라는 자바 표준의 일부이며, WAS 자체도 스레드 수나 메모리 사용량을 이 방식으로 알려 줍니다.

OPENMARU Cluster 는 세션 지표를 MBean 으로 등록합니다. 그래서 JMX 를 읽을 수 있는 도구라면 무엇이든 값을 볼 수 있고, 별도의 API 를 만들 필요가 없습니다.

켜져 있는지 확인

지표는 enableStatistics 설정으로 켜고 끕니다. 기본값이 true 라 따로 설정하지 않아도 켜져 있습니다. 2부 "지표 수집 켜기" 를 참고하십시오.

메모리 사용량만 예외입니다. 측정에 자바 에이전트가 필요해 기본으로 꺼져 있으며, enableMemoryStatistics 를 켜고 WAS 기동 옵션을 함께 넣어야 값이 나옵니다.

어디에 등록되나

애플리케이션마다 하나씩 등록됩니다. 이름은 다음과 같습니다.

com.opennaru.khan.session:type=SessionMonitor,appName=<애플리케이션 이름>

appName 은 그 애플리케이션의 컨텍스트 경로입니다. 루트 컨텍스트(/)로 배포했다면 ROOT 가 들어갑니다. 한 WAS 에 애플리케이션이 여럿이면 MBean 도 그만큼 보입니다.