1.uptime 用法:java
注:load average的理想狀態是:內核數乘以0.5-0.7緩存
如:4核CPU的服務器,理想負載小於2 表示系統很閒 2-2.8 爲理想狀態 大於2.8系統比較繁忙服務器
2.TOP 用法:工具
統計信息區前五行爲系統總體的統計信息:spa
87.5 id-空閒CPU百分比線程
11166040 free 空閒內存總量3d
3041252 used -使用的物理內存總量orm
2059696 buff/cache -用做內核緩存的內存量對象
可用內存的計算:totalfree=free+buff/cacheblog
3.JPS 用法:
JPS可直接羅列出當前系統中的java進程
top -p 11468 直接查看此進行的相關信息
4.jstat 用法:用於輸出java程序內存使用狀況,包括新生代、老年代、元數據區容量、垃圾回收狀況
上述命令爲:輸出進程號爲11468的內存使用狀況(每2000ms輸出一次,一共輸出5次)
5.jmap 用法:用於輸出java程序中內存對象的狀況,包括有哪些對象,對象的數量。
jmap -histo 11468
上述命令打印出進程ID爲11468的內存狀況。但咱們經常使用的方式是將指定進程的內存heap輸出到外部文件,再由專門的heap分析工具進行分析,例如mat(Memory Analysis Tool),因此咱們經常使用的命令是:
jmap -dump:live,format=b,file=heap.hprof 11468
6.jstack 查看線程信息
jstack 10765 能夠打印出進程堆棧的堆棧信息
找到最耗CPU的進程
執行top -c ,顯示進程運行信息列表
鍵入P (大寫p),進程按照CPU使用率排序
注:這裏的cpu使用率是全部cpu使用率的總和,能夠在輸入top命令後,再輸入"1"查看各個CPU使用狀況,如:
其中有一個cpu使用率一直是100%,這時應該懷疑程序有死循環的狀況。
top -Hp 23319 ,顯示一個進程的線程運行信息列表
鍵入P (大寫p),線程按照CPU使用率排序
將線程PID轉化爲16進制
之因此要轉化爲16進制,是由於堆棧裏,線程id是用16進製表示的。
./jstack 23319 |grep 0x5bb6 -C 10 --color
能夠看出線程一直運行在某個地方。