您好,登錄后才能下訂單哦!
本篇內容介紹了“有哪些Java性能常見命令”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
性能優化一向是后端服務優化的重點,但是線上性能故障問題不是經常出現,或者受限于業務產品,根本就沒辦法出現性能問題,包括筆者自己遇到的性能問題也不多,所以為了提前儲備知識,當出現問題的時候不會手忙腳亂。
既然是定位問題,肯定是需要借助工具,我們先了解下需要哪些工具可以幫忙定位問題。
top命令
top命令是我們最常用的Linux命令之一,它可以實時的顯示當前正在執行的進程的CPU使用率,內存使用率等系統信息。top -Hp pid 可以查看線程的系統資源使用情況。
vmstat命令
vmstat是一個指定周期和采集次數的虛擬內存檢測工具,可以統計內存,CPU,swap的使用情況,它還有一個重要的常用功能,用來觀察進程的上下文切換。字段說明如下:
r: 運行隊列中進程數量(當數量大于CPU核數表示有阻塞的線程)
b: 等待IO的進程數量
swpd: 使用虛擬內存大小
free: 空閑物理內存大小
buff: 用作緩沖的內存大小(內存和硬盤的緩沖區)
cache: 用作緩存的內存大小(CPU和內存之間的緩沖區)
si: 每秒從交換區寫到內存的大小,由磁盤調入內存
so: 每秒寫入交換區的內存大小,由內存調入磁盤
bi: 每秒讀取的塊數
bo: 每秒寫入的塊數
in: 每秒中斷數,包括時鐘中斷。
cs: 每秒上下文切換數。
us: 用戶進程執行時間百分比(user time)
sy: 內核系統進程執行時間百分比(system time)
wa: IO等待時間百分比
id: 空閑時間百分比
pidstat命令
pidstat 是 Sysstat 中的一個組件,也是一款功能強大的性能監測工具,top 和 vmstat 兩個命令都是監測進程的內存、CPU 以及 I/O 使用情況,而 pidstat 命令可以檢測到線程級別的。pidstat命令線程切換字段說明如下:
UID :被監控任務的真實用戶ID。
TGID :線程組ID。
TID:線程ID。
cswch/s:主動切換上下文次數,這里是因為資源阻塞而切換線程,比如鎖等待等情況。
nvcswch/s:被動切換上下文次數,這里指CPU調度切換了線程。
jstack命令
jstack是JDK工具命令,它是一種線程堆棧分析工具,最常用的功能就是使用 jstack pid 命令查看線程的堆棧信息,也經常用來排除死鎖情況。
jstat 命令
它可以檢測Java程序運行的實時情況,包括堆內存信息和垃圾回收信息,我們常常用來查看程序垃圾回收情況。常用的命令是jstat -gc pid。信息字段說明如下:
S0C:年輕代中 To Survivor 的容量(單位 KB);
S1C:年輕代中 From Survivor 的容量(單位 KB);
S0U:年輕代中 To Survivor 目前已使用空間(單位 KB);
S1U:年輕代中 From Survivor 目前已使用空間(單位 KB);
EC:年輕代中 Eden 的容量(單位 KB);
EU:年輕代中 Eden 目前已使用空間(單位 KB);
OC:老年代的容量(單位 KB);
OU:老年代目前已使用空間(單位 KB);
MC:元空間的容量(單位 KB);
MU:元空間目前已使用空間(單位 KB);
YGC:從應用程序啟動到采樣時年輕代中 gc 次數;
YGCT:從應用程序啟動到采樣時年輕代中 gc 所用時間 (s);
FGC:從應用程序啟動到采樣時 老年代(Full Gc)gc 次數;
FGCT:從應用程序啟動到采樣時 老年代代(Full Gc)gc 所用時間 (s);
GCT:從應用程序啟動到采樣時 gc 用的總時間 (s)。
jmap命令
jmap也是JDK工具命令,他可以查看堆內存的初始化信息以及堆內存的使用情況,還可以生成dump文件來進行詳細分析。查看堆內存情況命令jmap -heap pid。
mat內存工具
MAT(Memory Analyzer Tool)工具是eclipse的一個插件(MAT也可以單獨使用),它分析大內存的dump文件時,可以非常直觀的看到各個對象在堆空間中所占用的內存大小、類實例數量、對象引用關系、利用OQL對象查詢,以及可以很方便的找出對象GC Roots的相關信息。
idea中也有這么一個插件,就是JProfiler。
“有哪些Java性能常見命令”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。