Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A script that can quickly locate CPU and memory problems on the Java line(一个可以快速定位Java线上CPU和内存问题的脚本)

Notifications You must be signed in to change notification settings

zero-oclock/java-cpu-memory

Repository files navigation

java-cpu-memory

  • 执行show_maximum_cpu.sh脚本,输出高CPU占用率的线程堆栈信息
  • 执行show_maximum_memory.sh脚本,输出高内存占用率的线程堆栈信息

一、CPU占用率分析

  1. 赋予脚本执行权限
  • chmod +x show_maximum_cpu.sh
  1. 运行CPU分析脚本
  • 命令: sh show_maximum_cpu.sh [进程占用率,默认30] [线程占用率,默认20]
  • 例子: sh show_maximum_cpu.sh 30 20
 执行结果: 
 分析CPU占用最高的5个进程,取其中占用率超过30%的进程: 
 进程:16495 负载:212.5% 大于30% 
 进程:14670 负载:6.2% 小于30%,无需排查 
 进程:7750 负载:0.0% 小于30%,无需排查 
 进程:7210 负载:0.0% 小于30%,无需排查 
 进程:5779 负载:0.0% 小于30%,无需排查 
 分析CPU占用率超过30%的进程,其中CPU占用率超过20%的线程: 
 进程:16495 线程:16581 负载:99.9% 大于20% 
 进程:16495 线程:16577 负载:99.9% 大于20% 
 线程:16495 负载:6.7% 小于20%,无需排查 
 线程:16495 负载:0.0% 小于20%,无需排查 
 线程:16495 负载:0.0% 小于20%,无需排查 
 
 请打开cpu_result.log文件查看CPU高负载堆栈信息
  1. 打开分析结果文件(高CPU堆栈信息)
  • 输入命令: less cpu_result.log
 >>>>>>>>>>>>>>>>高CPU线程(99.9%): 
 "org.springframework.kafka.KafkaListenerEndpointContainer#4-9-C-1" #80 prio=5 os_prio=0 tid=0x00007f5d15210800 nid=0x40c5 runnable [0x00007f5c834a9000] 
 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 <0x00000000f2ca93a8> (a sun.nio.ch.Util3ドル) 
 - locked <0x00000000f2ca9398> (a java.util.Collections$UnmodifiableSet) 
 - locked <0x00000000f2ca9150> (a sun.nio.ch.EPollSelectorImpl) 
 at sun.nio.ch.SelectorImpl.selectNow(SelectorImpl.java:105) 
 at org.apache.kafka.common.network.Selector.select(Selector.java:672) 
 at org.apache.kafka.common.network.Selector.poll(Selector.java:396) 
 at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:460) 
 at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:258) 
 at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:230) 
 at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1164) 
 at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1111) 
 at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:654) 
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
 at java.lang.Thread.run(Thread.java:745) 

二、内存占用率分析

  • 打开analysis_maximum_memory.txt文件,按步骤分析

About

A script that can quickly locate CPU and memory problems on the Java line(一个可以快速定位Java线上CPU和内存问题的脚本)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /