Linux CPU 線上過載

2021-08-29 02:17:09 字數 2162 閱讀 9974

步驟

一、找到最耗cpu的程序

工具:top

方法:

步驟二:找到最耗cpu的執行緒

工具:top

方法:

步驟三:將執行緒pid轉化為16進製制

工具:printf

方法:printf 「%x」 29813

如上圖,29813 對應的16進製制是0x7475

步驟四:檢視堆疊,找到執行緒在幹嘛

工具:pstack/jstack/grep

注意事項:

如果提示 -bash: jstack: command not found,則可以找到jdk的目錄,進入bin目錄

在執行./jstack程序號 | grep 16進製制異常執行緒號 -a90 即可。

如果提示 well-known file is not secure,則是因為賬號許可權的問題。在/tmp/hsperfdata_$user/目錄,有乙個以程序號命名的檔案,當我們執行jmap或者jstack出現上敘資訊時,先檢查執行該命令的使用者是否和hsperfdata_$user這個檔案所屬的使用者一致,如果不一致,切換至成一致再執行。執行:sudo -u 有許可權的賬號 ./jstack 程序號 | grep 16進製制異常執行緒號 -a90 即可。

1.檢視執行緒的詳細資訊:cat /proc/程序號/task/執行緒號/status

2.pstree -p pid

3.實時顯示top -h -p pid

4.檢視該程序下所有的執行緒ps -efl | grep pid

5.free記憶體資訊cat /proc/meminfo  (重點關注一下 proc 目錄下檔案)

6.檢視記憶體free

第一行用全域性角度描述系統使用的記憶體狀況:

total——總物理記憶體  

used——已使用記憶體,一般情況這個值會比較大,因為這個值包括了cache+應用程式使用的記憶體

free——完全未被使用的記憶體

shared——應用程式共享記憶體

buffers——快取,主要用於目錄方面,inode值等(ls大目錄可看到這個值增加)

cached——快取,用於已開啟的檔案

注意:total=used+free

used=buffers+cached (maybe add shared also)

第二行描述應用程式的記憶體使用:

前個值表示-buffers/cache——應用程式使用的記憶體大小,used減去快取值

後個值表示+buffers/cache——所有可**用程式使用的記憶體大小,free加上快取值

注意-buffers/cache=used-buffers-cached

+buffers/cache=free+buffers+cached

第三行表示swap的使用: 

used——已使用

free——未使用

7.使用vmstat檢視系統維度的cpu負載vmstat -n 1# -n 1 表示結果一秒重新整理一次。

Linux CPU 監控指令碼

下面是乙個簡單的cpu監控指令碼,當然還可以在進行全面考慮公升級該指令碼。bin sh gt 60 伺服器只有乙個cpu scriptdir root shell cpu jk 目錄存放 logdir scriptdir log 日誌檔案存放及目錄建立 清理 if d logdir then ech...

Linux cpu配置分析

cat proc cpuinfo processor 0 vendor id genuineintel cpu family 6 model 58 model name intel r xeon r cpu e3 1230 v2 3.30ghz stepping 9 cpu mhz 1600.000...

linux cpu 資訊檢視

cat proc cpuinfo中的資訊 1 檢視物理cpu的個數 cat proc cpuinfo grep physical id sort uniq wc l 2 檢視邏輯cpu的個數 cat proc cpuinfo grep processor wc l 3 檢視cpu是幾核 cat pr...