系統(tǒng)運維問題排查-java內存過高分析及說明
1、查看內存使用情況
使用top查看進程使用內存情況,shift+m讓內存使用率按照降序排序,shift+p讓cpu使用率按照降序排序。

2、查看某個進程的線程情況
ps p $pid -L -o pcpu,pmem,pid,tid,time,tname,cmd
3、執(zhí)行 jmap $pid命令觀察內存使用情況

4、執(zhí)行 jstat -gcutil $pid 5s 命令查看內存使用情況

結果列含義:
- S0 — Heap上的 Survivor space 0 區(qū)已使用空間的百分比
- S1 — Heap上的 Survivor space 1 區(qū)已使用空間的百分比
- E — Heap上的 Eden space 區(qū)已使用空間的百分比
- O — Heap上的 Old space 區(qū)已使用空間的百分比
- P — Perm space 區(qū)已使用空間的百分比
- YGC — 從應用程序啟動到采樣時發(fā)生 Young GC 的次數(shù)
- YGCT– 從應用程序啟動到采樣時 Young GC 所用的時間(單位秒)
- FGC — 從應用程序啟動到采樣時發(fā)生 Full GC 的次數(shù)
- FGCT– 從應用程序啟動到采樣時 Full GC 所用的時間(單位秒)
- GCT — 從應用程序啟動到采樣時用于垃圾回收的總時間(單位秒)
- GCT 是YGCT 和FGCT的時間總和。
5、執(zhí)行 jmap –heap $pid 命令
查看各內存區(qū)域的設置
6、執(zhí)行 jmap -histo:live $pid 命令
查看每個 class 的實例數(shù)目、內存使用率和類全名。每分鐘執(zhí)行一次,連續(xù)執(zhí)行 5 次

7、獲取dump文件
jmap -dump:live format=b,file=./dump.bin $pid
8、查看進程堆棧信息
jstack -l $pid> /usr/local/temp/jstack.log

JSTACK命令打印解析
日志格式
- "Keep-Alive-Timer"代表線程的名稱。在實際開發(fā)中,要取一個和業(yè)務相關、見名知意的名字,便于排查問題。
- “prio=8”表示線程的優(yōu)先級。
- “os_prio=0”表示操作系統(tǒng)級別的優(yōu)先級。
- “tid=0x000055868e1e9000”表示線程id。
- “nid=0x394f”表示操作系統(tǒng)映射的線程id。
- “0x00007fabd4f44000”表示線程棧的起始地址。
具體分析
waiting to lock <0x00000000d6349040>,即試圖在地址為0x00000000d6349040所在的對象獲取鎖;而該對象卻被線程加了鎖(locked <0x00000000d6349040>)。
- waiting on condition [0x00007fabd5b4e000]:說明正在等待某個條件觸發(fā)。
- waiting for monitor entry [0x000000001bbcf000]:說明該線程正在等待獲取鎖。
其中:java.lang.Thread.State: WAITING (parking):一直等那個條件發(fā)生;
java.lang.Thread.State: TIMED_WAITING (parking或sleeping):定時的,那個條件不到來,也將定時喚醒自己。MEM。
注意:jmap和jstack需要使用與進程一致的用戶才能執(zhí)行
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot Redisson 集成的實現(xiàn)示例
本文主要介紹了SpringBoot Redisson 集成的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-05-05
spring-data-jpa使用自定義repository來實現(xiàn)原生sql
這篇文章主要介紹了在spring-data-jpa中使用自定義repository來實現(xiàn)原生sql,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Android設備如何保證數(shù)據(jù)同步寫入磁盤的實現(xiàn)
這篇文章主要介紹了Android設備如何保證數(shù)據(jù)同步寫入磁盤的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09

