linux下的top命令,可以用來實時監控服務器的健康狀況。該命令能夠獲取到的信息非常多,是服務器運維工程師最好的幫手之一。我們知道,ps這個命令可以監控某一時刻,服務器上各進程的運行情況,相對比ps,top命令則可是持續監控。
top?[選項]
常用選項如下:
-
-d 屏幕刷新間隔時間,默認為5秒
-
-n 共刷新屏幕的次數
-
-u 指定用戶名
-
-p 指定進程ID
下面,我們看看top命令產生出的信息內容
首先我們來看第一行
-
top – 14:55:21 表示系統當前時間
-
up 12 days, ?1:28 表示服務器自上次啟動后持續運行的時間
-
1 user 當前系統有多少個用戶已登陸
-
load average: 0.17, 0.09, 0.13 表示系統在過去1分鐘、5分鐘、15分鐘的工作負載情況。負載表示系統在同時運行幾個程序。對于單核cpu,負載小于1表示正常,如果有4塊cpu并且都是兩核,那么負載小于8是正常的。
繼續看第二行,第二行是給出系統所有進程的總體信息,總共有多少191個進程,1個進程正在運行中,190進程在休眠中。
第三行顯示cpu的使用信息
-
us 表示用戶進程占用的cpu百分比,如果是多核,這個表示的是平均值,可以按1來顯示每個cpu的使用情況。
-
sy 表示內核空間占用的cpu百分比
-
id 表示空閑時間占cpu的百分比
-
wa表示I/0 wait,即等待輸入輸出的cpu時間百分比
第四行和第五行分別顯示的是內存的使用情況、swap空間的使用情況。
對于top命令,我們不僅要知道幾個選項的意義,更需要知道一些交互命令。這些交互命令可以讓我們非常方便的查詢想要的信息。常用的兩個交互命令如下:
-
P:根據CPU使用百分比大小進行排序;
-
M:根據駐留內存大小進行排序
-
c:切換顯示命令名稱和完整命令行
介紹完top命令后,下面給出一個日常運維中非常有用的小方法。當我們知道了某個進程比較占用資源,那么可能就需要去監控這個進程一段時間,如果一直耗資源,就需要采取相應的措施了。比如,我們知道了mysql進程比較耗資源,并且知道了它的pid為1992,那么我們用top來監控該進程一段時間看看。
top?-p?1992