MariaDB 온라인쇼핑몰 성능이슈 해결과정 4편

Updated:

MariaDB 온라인 쇼핑몰 성능이슈 해결과정 4편


미해결 이슈사항 정리

DB 로드 밸런싱 해당 온라인 쇼핑몰 사이트는 MariaDB 노드 3대로 운영중이었다. 프로모션이 모두 끝나고 철수 전 1번 노드에만 부하가 몰리는 상황이 발생되어 09시부터 18시까지 모니터링 하였다.. 아래는 1번 노드에서 초당 SELECT문장이 2,000회 이상 꾸준히 처리되지만 2,3번 노드에서는 처리량이 없음을 보여준다.

[Note]

MariaDB는 특이하게 SQL문장 종류로 모니터링 지원을 한다. (SELECT/INSERT/UPDATE/DELETE 문장 단위로 처리량이 모니터링 됨)


Connection Pool 동시에 유실(네트워크 문제?) Connection Pool이 총 900개 중 400개가 동시에 유실되는 현상이 반복적 발생되었다. WAS 6대의 Connection Pool이 동시에 유실된다는 것은 경험상 네트워크 문제를 의심해 볼 만 하다. Connection Pool 설정 중 MIN/MAX값을 같게 설정했기 때문에 WAS서버가 내려가지 않는다면 Connection Pool이 줄어들 이유가 없기 때문이다.


WAS서버 메모리 증설 3차 프로모션 후 WAS메모리 증설(8GB → 16GB)한 3대 메모리 사용률이 50%가 넘는 것이 확인되었다. 8GB이상 메모리 사용한다는 것이 메모리 부족을 보여주는 것이다. 즉각적인 인프라 증설을 통한 튜닝은 온-프레미스 환경에서는 할 수 없는 Cloud 환경의 좋은 튜닝 사례이다.


응답시간 모니터링 매 정시마다 응답시간이 높아지는 현상이 관찰되었다. 하지만 위의 3가지 이슈사항(DB 로드 밸런싱/ 네트워크 문제/ WAS서버 메모리 부족)이 해결되지 않은 상황에서는 튜닝이나 분석이 무의미하다고 판단되어 철수하기로 결정하였다.


2주간 성능 이슈발생과 문제해결과정이 반복되었다. 보통의 경우 성능이슈는 한두가지 튜닝적용으로 해결된다. 하지만 해당 사이트는 DB로드밸런싱/네트워크 단절/WAS서버 메모리 부족/Connection Pool부족/Galera Cluster 동기화 지연/SQL튜닝 에다 프로모션에 따른 대량부하 발생까지 성능문제 종합선물세트 같았다.


시간이 참 빠르다. 벌써 추석 프로모션 지원할 때가 되었다.

끝~~