OS Unix [IBM aix]/WEB WAS DB 3tier

주문 폭주 대비 시 영향도

infra 2022. 6. 27. 22:04

특정 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 하여 추가적으로 더 늘려준다면

해당 서비스의 안정화를 가져올 수 있다.