tomcat负载高—排查&&处理方法

  • Post author:
  • Post category:其他


排查流程:

  1. 整体排查: vmstat /top/ps aux 找出哪个进程的问题
  2. 找出进程对应线程id :通过top -Hp java进程id 找出是哪个java线程

    的问题
  3. 转换:线程id—>16进制:问题线程的id 转换为16进制 线程id
  4. 找出线程的详细信息: jstack (显示java 进程信息) jstack java进程id

    过滤 java线程的16进制id 与开发沟通
  5. 显示jvm信息: jmap (显示java jvm信息) jmap -heap java进程id 显 示jvm的内存使用情况
  6. jvm内存内容导出:jmap (导出 jvm内存的内容 ) jmap – dump:format=b,file=/root/tomcat.bin pid
  7. 给开发分析jvm导出文件:通过 mat(Eclipse Memory Analyzer Tool )分 析 windows

操作步骤:

一、找出 cpu或 磁盘 导致 负载高 的进程

< r 数字较大 意味着系统的 cpu使用率较高 ; b 数字较大 意味着 磁盘io较高 >
在这里插入图片描述
二、显示 cpu和内存的使用率 每个进程
在这里插入图片描述
在这里插入图片描述

三、通过top -Hp java进程id 找出是哪个java线程的问题;

找出进程中哪个线程占用 cpu 内存;

-H 显示进程对应线程信息 , -p 指定pid

比如 有问题的进程是PID 6119

在这里插入图片描述
四、问题线程的id 转换为16进制

比如有问题的线程 id 是 6128

在这里插入图片描述
五、导出 java 进程信息 配合开发人员一起排查
在这里插入图片描述
六、

显示jvm信息

: jmap (显示java jvm信息)

< java jvm使用率 后 面用来做自定义监控 >

jmap -heap java进程id 显示jvm的内存使用情况

[root@xxxxxxxx ~]# jmap -heap 6119

Attaching to process ID 6119, please wait…

Debugger attached successfully.

Server compiler detected.

JVM version is 25.241-b07

using thread-local object allocation.

Mark Sweep Compact GC

Heap Configuration:

MinHeapFreeRatio = 40

MaxHeapFreeRatio = 70

MaxHeapSize = 452984832 (432.0MB)

NewSize = 9764864 (9.3125MB)

MaxNewSize = 150994944 (144.0MB)

OldSize = 19595264 (18.6875MB)

NewRatio = 2

SurvivorRatio = 8

MetaspaceSize = 21807104 (20.796875MB)

CompressedClassSpaceSize = 1073741824 (1024.0MB)

MaxMetaspaceSize = 17592186044415 MB

G1HeapRegionSize = 0 (0.0MB)

Heap Usage:

New Generation (Eden + 1 Survivor Space):

capacity = 16515072 (15.75MB)

used = 2719504 (2.5935211181640625MB)

free = 13795568 (13.156478881835938MB)

16.466800750248016% used

Eden Space:

capacity = 14680064 (14.0MB)

used = 2174936 (2.0741806030273438MB)

free = 12505128 (11.925819396972656MB)

14.815575735909599% used

From Space:

capacity = 1835008 (1.75MB)

used = 544568 (0.5193405151367188MB)

free = 1290440 (1.2306594848632812MB)

29.676600864955358% used

To Space:

capacity = 1835008 (1.75MB)

used = 0 (0.0MB)

free = 1835008 (1.75MB)

0.0% used

tenured generation:

capacity = 36446208 (34.7578125MB)

used = 19670472 (18.75922393798828MB)

free = 16775736 (15.998588562011719MB)

53.97124441587997% used

22703 interned Strings occupying 2400608 bytes.

七、

jvm内存内容导出

:jmap (导出 jvm内存的内容 )

jmap -dump:format=b,file=/root/tomcat.bin javapid

#下载到windows,准备 通过java mat分析

在这里插入图片描述

八、通过 java mat 分析 刚才导出的数据

< 和开发人员一起看 >

在这里插入图片描述



版权声明:本文为liumangtuzi888原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。