Linux中檢視CPU、記憶體和IO的佔用情況
阿新 • • 發佈:2020-10-13
對於伺服器的監控,主要還是檢視CPU、記憶體以及IO的佔用情況,在此做個簡單的瞭解
一、常用命令
1、top命令
top
命令應該是使用比較多的一個,可以看到CPU和記憶體的佔用情況以及程序的PID,進入top頁面後,大寫的字母P
和M
分別是按照CPU佔用和記憶體佔用排序顯示。
2、free命令
free
命令在檢視記憶體使用情況是也是用的比較多。
3、ps命令
ps -aux | sort -k4nr | head -N
head -N
可以指定顯示的行數,預設顯示10行。ps -aux
中引數a指all,即所有的程序;u指userid,即執行該程序的使用者id;x指顯示所有程式,不以終端機來區分。sort -k4nr
中k代表根據哪一個關鍵詞排序,後面的數字4表示按照第四列排序;n代表numberic sort,指根據其數值排序;r代表reverse,指反向比較結果,因為輸出時預設是從小到大,用了反向後就是從大到小。- 上述命令%MEM是第四列,故是按照記憶體佔用情況列舉記憶體佔用最多的N行程序;%CPU是第三列,檢視CPU佔用情況的話,用k3即可。
4、iostat命令
以磁碟為單位檢視io情況,個人常用iostat -xdm 1
來檢視
5、pidstat命令
統計程序的狀態,自然也包括程序的IO狀況,個人常用pidstat -urd 1
- -u:CPU使用率
- -r:缺頁及記憶體資訊
- -d:IO資訊
- -t:有需要的話也可以以執行緒為統計單位
- 檢視程序IO狀況的還有
iotop
命令
如何在發生OOM時自動dump記憶體快照
1、問題背景
在運維伺服器的時候會遇到一些java程序報錯“java.lang.OutOfMemoryError”然後程序死掉的情況,對於Java我瞭解的不多,但是當問題發生的時候起碼需要知道是什麼物件太多導致的OOM,所以在發生OOM時能有一份dump記憶體快照對於排查問題就很重要了。