-
<Apache-Tomcat>아파치 톰캣 기술지원 전문기업 (주)제스트정보기술 - Tomcat의 Cache를 무한정 늘리면 안되는 이유WEBWAS/Apache,Tomcat 2024. 4. 9. 17:58
안녕하세요, 여러분~
Open Source Web/WAS 전문가 집단인 제스트정보기술 입니다.
오늘은 저희가 유지보수 하고 있는 고객사에서 대단히 특이한 장애가 있었어서 이를 Case Study 하려고 합니다.
구글링을 해봤는데 동일한 유형의 장애는 없어서 소개해드리고 싶었어요.
Apache 4ea와 Tomcat 4ea로 운영 중인 고객사인데, OutOfMemoryError: Heap space가 비번하게 발생하고 있었답니다.
다들 아시다시피 OOM은 치명적인 장애이며 한번 발생하면 복구가 힘들며 재가동을 해야 하는 경우가 많습니다.
OOM 발생시 사후분석 및 자동 복구를 위해 아래와 같은 JVM 옵션을 추가했습니다.
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_BASE}/heapdump-${NOW}.hprof -XX:OnOutOfMemoryError=/home/xest/tomcat9/bin/forceRestart.sh
아쉽지만 당장 덤프가 없기 때문에 분석은 힘들고 이후에 또 Heapdump가 떨어지면 분석할 수 있습니다.
약간의 기다림 끝이 Heapdump가 생성되었고 분석 Tool로 열어보니.. 이게 웬걸...?
사진 설명을 입력하세요.
HashMap 구조로 되어 있는 org.apache.catlina.webresources.CachedResource에서 메모리를 대부분 점유하고 있는게 아니겠어요?
이름만 봐도 알 수 있듯이 Cache 객체이고 이에 대해 과도한 사용으로 인해 OOM이 발생한 것입니다.
도대체 왜 이런 일이 발생한 것일까요?
설정을 살펴보던 중 아주 이상하게 된 설정을 발견했습니다
<Resources allowLinking="true" cachingAllowed="true" cacheMaxSize="1000000000"/>
ㄷㄷㄷㄷㄷ;;; 뭐가 이상한지 눈치 채셨나요?
cacheMaxSize는 단위가 kb로써 현재 1테라바이트로 설정되어 있습니다.
아마도 개발자 분이 Tomcat 가동시 cache가 부족하다는 메세지를 보고 크게 설정하신 듯 해요....
이럴 때는 어느 정도만 늘리고 Spring Framework에서 Cache를 조절하는 것이 맞지요.
해당 고객사도 Cache 사이즈를 1GB로 변경하고 Application의 Spring에서 cache에 들어가는 entry를 조절하여 OOM은 없어졌답니다.
다음에도 저희가 경험한 좋은 Case가 있으면 들고 찾아뵙겠습니다.
감사합니다.
<제스트정보기술 기술지원>
(주)제스트정보기술은 전산시스템 구축에 오픈소스 SW로 구성
요구사항 분석과/공개 소프트웨어 설치 및 기술지원/서비스 연동/교육 및 컨설팅을 수행 하고 있습니다.
-. 공개 소프트웨어 기술 지원체계 수립
-. 공개 SW 교육 지원
-. 수요기관의 SW 구조/기능을 분석하고, 공개 SW 도입을 위한 분석, 솔루션을 검토함.
-. 오픈소스 SW 구축을 위한 최근 개발경향 분석
-. 해당 기능/역할에 대한 공개 소프트웨어 기술데이터 분석
-. 개방형 OS 도입 및 인프라 기반 WEB/WAS, 오픈 DB 기술지원 체계 수립
-. Apache, Jboss(Wildfly) was, Linux OS, 오픈 DBMS 구축, 기술지원
제스트정보기술은 20년 이상의 WEB/WAS 기술지원 경험과 노하우를 바탕으로
고객의 인프라 상용소프트웨어(Jeus, weblogic,JBoss EAP, Oracle DB등)에 소요되는 제반비용
(도입, 운영, 유지보수 비용등)을 획기적으로 절감하도록 계획과 방법을 제안하고 있으며
시스템 서비스의 성능을 전반적으로 개선하여 기술지원, 컨설팅을 제공하고 있습니다.
시스템 구축 이후에도 서비스 안정화를 위해 지속적인 서비스 모니터링 지원하고 있으며 ,
고객의 시스템을 안정적으로 운영하기 위해 최선의 노력을 다하고 있습니다.
<오픈소스 기술지원 문의>
영업지원 : sales@xest.kr
전화번호 : 02-558-5918
팩스번호 : 02-558-5913
홈페이지 : http://www.xest.kr
'WEBWAS > Apache,Tomcat' 카테고리의 다른 글