공유할 서비스 선택

QnA


QnA

Middleware Tomcat 리소스 사용량 부하 현상문의

페이지 정보

작성자 Wonjongseok 아이디로 검색 전체게시물 댓글 2건 조회 2,540회 좋아요 0회 작성일 21-08-13 15:06

본문

 

시스템 운영 중 Tomcat 리소스 사용량 부하 현상에 기술 문의를 드립니다.  

 

 

[서버구성상태]

 

현재 Azure VMSS(Virtual Machine Scale Sets) 레드햇 리눅스 환경에서 현재 서버 4대 유지 중 

 

각각 서버에는 std-tom 톰캣과 view-tom 톰캣 두개의 톰캣이 기동 중

 

각각 서버에 있는 std-tom톰캣은 모두 Azure Redis(Azure Cache for Redis)에 연결되어 세션 클러스터링 중이며, 

 

톰캣 위에 개발자들이 스프링부트를 올려 개발을 진행함

 

 

[이슈사항]

 

아래 캡처 본처럼 std-tom 톰캣을 재기동 하면 서버 메모리 사용률이 30%정도 까지 내려갔다가 약 50%까지 천천히 올라갑니다. 

 

서버 4대 모두 메모리사용률이 50% 정도가 되면 메모리는 더 이상 오르지 않으며 그대로 유지되고, 갑자기 CPU가 오르기 시작합니다. 

 

std-tom 톰캣을 재기동 하지않고 이대로 두면 CPU가 100%까지 올라가며 그대로 유지됩니다. 

(리눅스에서 top으로 확인 시 std-tom톰캣만 CPU 부하가 걸립니다.)

 

그리고 CPU 70% 이상부터는 std-tom 연동되어있는 서비스들이 제대로 작동되지 않고 오류가 발생하며, 

 

부하가 발생하지 않도록 수동으로 주기적으로 4대의 서버에 있는std-tom 톰캣을 순차적으로 재기동 하고 있는 상황입니다.

 

 f4c306e8201d18d8b0a5ccbfa361e305_1628836976_8383.jpg 

 

std-tom 톰캣 Catalina.sh 파일에 메모리 설정  

  

 f4c306e8201d18d8b0a5ccbfa361e305_1628836985_8142.jpg 

 

vmstat 및 jstat으로 메모리 사용량 확인  

 

 f4c306e8201d18d8b0a5ccbfa361e305_1628836994_777.jpg 

 

 

추가문의

========================================================================================= 

 지난주 금요일 CPU 사용률이 서서히 증가되는 중이던 서버 2대에서 약간의 시간차를 두고 생성한 6개의 ThreadDump 파일 전달 드립니다.  

 

먼저 메모리 사용률이 서서히 증가하여 일정수치에 도달하였을 때부터 CPU 사용률이 서서히 올라가서

 

사용자 증가로 발생하는 CPU 사용률 증가는 아닌 것으로 생각됩니다.

 

추가로 오늘 오전에 개발자분이 분석한 내용은 JVM Check  했을 때 

Old Generation 100% 차 있으며 Garbage Collection을 해도 비워지는 부분이 없어 반복해서 Garbage Collection이 이뤄지고 있다고 합니다.

 

ThreadDump 파일만으로 원인 분석이 어려우시면 추가로 요청해주세요. 

========================================================================================= 


첨부파일

댓글목록

미들웨어님의 댓글

미들웨어 작성일

안녕하세요.

vmstat로 보면 us 6, sy 2만 사용되고있을 정도로 여유있네요.
위 그래프만 봤을때는 cpu사용량이 증가된거고 사용량이 늘었나? 정도 추측이 가능합니다.

저라면 CPU가 3%이다 30~40%로 증가됐을때 ThreadDump 를 생성해서 어떤 Thread가 실행되고 있는지 확인해볼 것 같습니다.
일반적으로 cpu가 급작스럽게 튀는 경우는 크게 두가지를 생각해 볼 수 있습니다.

첫째는 사용자의 증가로 인한 cpu증가고, 두번째로는 batch 입니다.
정기, 비정기적으로 batch process 가 돌경우 cpu증가가 발생가능합니다.
도움이 되셨기를 바랍니다.

미들웨어님의 댓글

미들웨어 작성일

redisson-netty RUNNABLE 스레드가 60여개가 넘네요.
무한루프 도는 부분이 있는지 프로그램 확인이 필요할 것 같습니다.

1. do ... while loop 사용하는 부분이 있는지 확인이 필요한데, tomcat server.log 에 관련된 호출파일이 있다면 연관해서 찾아보시면 좋을 듯 합니다

2. redisson-netty 스레드 무한루프랑 비슷한 사례를 찾았는데 확인해볼 필요가 있을듯 하네요
https://github.com/redisson/redisson/issues/2299
https://github.com/netty/netty/pull/9579


3. Threaddump 분석된 자료리포트 첨부로 올려두고싶은데, pdf는 업로드가 안되네요..
구글드라이브에 누구나 다운받을 수 있게 공유링크 알려드리겠습니다. (클릭후 다운해주세요)
https://drive.google.com/file/d/1OnB9t2Ws9AZuCtTFosNJKV1HrLm2ULLa/view?usp=sharing



  java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x00000006cb518228> (a io.netty.channel.nio.SelectedSelectionKeySet)
- locked <0x00000006cb6aae60> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000006cb518180> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101)
at io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:68)
at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:810)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:457)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)

QnA 목록
답변 제목 작성자 작성일 조회수
1 Middleware middlewaretest 아이디로 검색 전체게시물 12-01 377
WildFly 세션클러스터링 문의

카테고리 : Middleware

1
377 1
작성자 : middlewaretest 23/12/01
2 Middleware middlewaretest 아이디로 검색 전체게시물 11-08 229
WildFly 일반 사용자 80, 443 포트 사용

카테고리 : Middleware

2
229 2
작성자 : middlewaretest 23/11/08
1 Middleware 김보현 아이디로 검색 전체게시물 08-03 589
[Apache Tomcat 8.5] Window Tomcat st

카테고리 : Middleware

1
589 1
작성자 : 김보현 23/08/03
0 ETC leechanho 아이디로 검색 전체게시물 08-31 1058
MySQL PID 파일 생성 에러 - The server quit without updating PID file

카테고리 : ETC

0
1,058 0
작성자 : leechanho 22/08/31
1 OS LeeHyongDong 아이디로 검색 전체게시물 05-13 1356
리눅스 한글 설정

카테고리 : OS

1
1,356 1
작성자 : LeeHyongDong 22/05/13
1 OS 292 아이디로 검색 전체게시물 03-22 1452
pcs Clone Set stopped 문의드립니다

카테고리 : OS

1
1,452 1
작성자 : 292 22/03/22
1 Middleware
apache os버전 댓글+ 1
apfnd**** 아이디로 검색 전체게시물 03-03 1685
apache os버전

카테고리 : Middleware

1
1,685 1
작성자 : apfnd**** 22/03/03
1 OS 꿀케이 아이디로 검색 전체게시물 12-03 1768
Linux 멀티패스 관련 문의드립니다.

카테고리 : OS

1
1,768 1
작성자 : 꿀케이 21/12/03
1 Middleware Wonjongseok 아이디로 검색 전체게시물 11-04 2640
Apache - JBoss 운영서버의 웹서비스 오류현상 문의

카테고리 : Middleware

1
2,640 1
작성자 : Wonjongseok 21/11/04
2 Middleware Wonjongseok 아이디로 검색 전체게시물 08-31 1393
JBoss 6.1 - 정상적인 웹페이지 노출이 되지 않는 현상과 Out of Memory Error 증상 문의

카테고리 : Middleware

2
1,393 2
작성자 : Wonjongseok 21/08/31
Total 43건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top