步驟
一、找到最耗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
第一行用全域性角度描述系統使用的記憶體狀況:7.使用vmstat檢視系統維度的cpu負載vmstat -n 1# -n 1 表示結果一秒重新整理一次。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——未使用
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...