서버 CPU의 과부하, 문제 파악 방법
2327 단어 지식 축적
2, 이 프로세스를 찾은 후 구체적인 스레드나 코드를 어떻게 찾습니까? 먼저 스레드 목록을 표시하고 CPU가 차지하는 높은 스레드에 따라 정렬합니다. [root@localhost logs]# ps -mp 12433 -o THREAD,tid,time | sort -rn
결과는 다음과 같습니다. USER%CPU PRI SCNT WCHAN USER SYSTEM TID TIME root 10.5 19--- 1626 00:12:48 root 10.1 19--- 3293 00:12:16
가장 오래 걸리는 스레드 1626을 찾았습니다. CPU 사용 시간이 12분입니다!
혹은
2. top-hppid(shift+p는 cpu로, shift+m는 메모리로 정렬) top-hp8958을 사용하여 이 프로세스 아래의 모든 라인을 가져오고%CPU를 통해 가장 소모되는 CPU를 찾는 것은 라인 PID
필요한 스레드 ID를 16진수로 변환합니다. [root@localhost logs]# printf "%x"1626 e18
마지막으로 라인의 창고 정보를 인쇄합니다: 실행 중입니다
jstack -l [PID] > /tmp/output.txt
그 다음에 맞을 수 있어요/tmp/output.txt
분석현재 dump 시간 및 JVM 기본 정보 시작
2019-06-12 16:13:06
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.152-b16 mixed mode):
다음은 프로그램의 스레드 정보입니다.
"JetCacheHeavyIOExecutor3" #85 daemon prio=5 os_prio=0 tid=0x00007f76a93ab800 nid=0x1c47a waiting on condition [0x00007f7696acb000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c9863140> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- None
출력된 정보를 일치시키면 문제가 있는 코드를 찾을 수 있다.
기타 기사 참조: JVM에서 CPU를 가장 많이 사용하는 스레드 찾기https://blog.csdn.net/notsaltedfish/article/details/80209538
top와 jstack을 결합하여 cpu에서 가장 높은 창고 정보를 찾다https://blog.csdn.net/u012448083/article/details/76855340
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 - 중개 모델 (연근 분해)디자인 모드 - 중개 모드 원리: 하나의 중개 대상 으로 일련의 대상 의 상호작용 을 밀봉 하고 중개 자 는 각 대상 이 표시 할 필요 가 없 는 상호 인용 을 하여 결합 도 를 낮 출 수 있 으 며 그들 간 의 상...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.