linux平台性能监控系统,Linux系统性能监控
1.uptime 用法:
16:02:17? 為當前系統的時間
up 148 days,8:43 表示系統已運行148天8小時43分鐘
1 user? 表示用戶連接數為1
load average: 0.99,0.99,1.00 表示系統平均負載 統計最近1,5 ,15分鐘的系統平均負載
注:load average的理想狀態是:內核數乘以0.5-0.7
如:4核CPU的服務器,理想負載小于2 表示系統很閑? 2-2.8 為理想狀態? ?大于2.8系統比較繁忙
2.TOP 用法:
統計信息區前五行為系統整體的統計信息:
第一行運行結果同 uptime進行結果相同
第二行?Tasks: total-進程總數? ?running-正在運行的進程數 sleeping-睡眠的進程數 stopped-停止的進程數 zombile-僵尸進程數
第三行 %Cpu(s): 12.5% us-用戶空間占用CPU百分比
87.5 id-空閑CPU百分比
第四行 Mem: 16267180 total 表示物理內存總量
11166040 free 空閑內存總量
3041252 used -使用的物理內存總量
2059696 buff/cache -用作內核緩存的內存量
第五行 SWAP 為交換區信息
可用內存的計算:totalfree=free+buff/cache
3.JPS 用法:
JPS可直接羅列出當前系統中的java進程
top -p 11468 直接查看此進行的相關信息
4.jstat 用法:用于輸出java程序內存使用情況,包括新生代、老年代、元數據區容量、垃圾回收情況
上述命令為:輸出進程號為11468的內存使用情況(每2000ms輸出一次,一共輸出5次)
S0:幸存1區當前使用比例
S1:幸存2區當前使用比例
E:伊甸園區使用比例
O:老年代使用比例
M:元數據區使用比例
CCS:壓縮使用比例
YGC:年輕代垃圾回收次數
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗總時間
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? 可以打印出進程堆棧的堆棧信息
實戰實例:
(一)當Linux系統CPU飆升時,找出系統中最耗CPU資線程
找到最耗CPU的進程
執行top -c ,顯示進程運行信息列表
鍵入P (大寫p),進程按照CPU使用率排序
注:這里的cpu使用率是所有cpu使用率的總和,可以在輸入top命令后,再輸入"1"查看各個CPU使用情況,如:
其中有一個cpu使用率一直是100%,這時應該懷疑程序有死循環的情況。
找到最耗CPU的線程
top -Hp 23319 ,顯示一個進程的線程運行信息列表
鍵入P (大寫p),線程按照CPU使用率排序
將線程PID轉化為16進制
之所以要轉化為16進制,是因為堆棧里,線程id是用16進制表示的。
查看堆棧,找到對應的線程
./jstack 23319 |grep 0x5bb6 -C 10 --color
可以看出線程一直運行在某個地方。
總結
以上是生活随笔為你收集整理的linux平台性能监控系统,Linux系统性能监控的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10怎么用Linux命令,教你Wi
- 下一篇: 益海几个工厂收花生米?