특정 web이나, 모바일 웹으로 접근하면서 동시다발적으로 사람들이 많이 접속하게 되면,
서비스에 영향이 가기 마련이다.
WEB/WAS/DB 3 TIER 구조로 되어있는 서버를 보자면,
WAS 에서 최상단에서 받쳐주고 그 후 WEB 서버 , 최종적으로 DB 서버에 리소스가 부하가 발생한다.
WAS에서 받쳐주질 못하니, CPU 리소스가 99% 가량 점유하며, session count loop문으로 돌릴 때 세션이 3천,5천 까지도 가지만, max client 나 동시접속자 수 넘어서서 버티지 못하였다.
이 수치는 이미 client=sender=(접속하려는 많은 사람들)이 서버(=receiver)쪽으로
데이터를 보내기전에 SYN(=Synchronized= 동기화) 으로 요청을 보낼 때 이 때 문제가 대다수 발생한다.
was 서버에서 계속 was 서비스를 재기동하기도 하였고,심지어 OS 리부팅까지도 하게되었다.
심각하게는 DB 서버까지도 리소스 과부하를 일으키게 되면 정말 위험한 상황이다.
[해결 원인1]
본질적인 분석 원인을 찾으려면, java heap dump를 수집하여 WAS 엔지니어가 해당 로그를 분석하고, 그 후 로그 결과에 따라 액션은 개발자들이 취하여야 한다.
해당 출처는 검색 후 heap dump 분석 방법을 찾았다.
https://jupiny.com/2019/07/15/java-heap-dump-analysis/
Java Heap Dump 분석하기
Spring으로 개발한 웹어플리케이션을 운영하다보면, 많은 트래픽으로 인해 또는 구현상의 버그로 인해(보통은 이 경우겠지만) Heap의 사용량이 순간적으로 증가할 수 있다. 이 경우 GC(Garbage Collectio
jupiny.com
[해결 원인2]
또한, 해당 증상의 원인파악이 힘들게 된다면, 본질적으로 WAS 서버를 scale out 하여 추가적으로 더 늘려준다면
해당 서비스의 안정화를 가져올 수 있다.
'OS Unix [IBM aix] > WEB WAS DB 3tier' 카테고리의 다른 글
WAS jennifer & IPS 활용(주문 폭주 대비 공격자 차단) (0) | 2022.07.13 |
---|