1. 程式人生 > 實用技巧 >Linux中檢視CPU、記憶體和IO的佔用情況

Linux中檢視CPU、記憶體和IO的佔用情況

對於伺服器的監控,主要還是檢視CPU、記憶體以及IO的佔用情況,在此做個簡單的瞭解

一、常用命令

1、top命令

top命令應該是使用比較多的一個,可以看到CPU和記憶體的佔用情況以及程序的PID,進入top頁面後,大寫的字母PM分別是按照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記憶體快照對於排查問題就很重要了。

2、配置