原文連接:http://tabalt.net/blog/linux-top/linux
top命令算是最直觀、好用的查看服務器負載的命令了。它實時動態刷新顯示服務器狀態信息,且能夠經過交互式命令自定義顯示內容,很是強大。nginx
在終端中輸入top
,回車後會顯示以下內容:sql
top - 21:48:39 up 8:57, 2 users, load average: 0.36, 0.24, 0.14 Tasks: 322 total, 2 running, 320 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.0 us, 1.7 sy, 0.0 ni, 93.0 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st KiB Mem: 1010504 total, 937416 used, 73088 free, 23708 buffers KiB Swap: 1046524 total, 280708 used, 765816 free. 365556 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 8096 root 20 0 320624 38508 21192 S 1.7 3.8 0:41.03 Xorg 13536 tabalt 20 0 697336 104272 56776 S 1.7 10.3 0:08.29 gnome-langu+ 9426 tabalt 20 0 1213228 72976 16860 S 1.0 7.2 2:07.27 compiz 197 root 20 0 0 0 0 S 0.3 0.0 0:36.13 kworker/0:2 1009 root 20 0 303112 3392 1500 S 0.3 0.3 0:00.93 polkitd 9670 tabalt 20 0 325932 4300 2256 S 0.3 0.4 0:40.27 vmtoolsd 14016 root 25 5 43940 2408 2000 S 0.3 0.2 0:01.12 http 14149 tabalt 20 0 591180 19504 12820 S 0.3 1.9 0:00.45 gnome-termi+ 1 root 20 0 33648 1972 744 S 0.0 0.2 0:01.79 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:02.80 ksoftirqd/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 S 0.0 0.0 0:05.55 rcu_sched 8 root 20 0 0 0 0 R 0.0 0.0 0:03.43 rcuos/0 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuos/1 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuos/2
前五行是系統總體狀態的統計信息展現區域。下面分別介紹每一行中的內容:緩存
以下所示,第一行列出了服務器運行了多長時間,當前有多少個用戶登陸,服務器的負荷狀況等,使用uptime
命令能得到一樣的結果。服務器
top - 21:48:39 up 8:57, 2 users, load average: 0.36, 0.24, 0.14 / / / \ 當前時間 運行時長 當前登陸用戶數 平均負載(1分鐘、5分鐘、15分鐘)
平均負載的值越小表明系統壓力越小,越大則表明系統壓力越大。一般,咱們會以最後一個數值,也就是15分鐘內的平均負載做爲參考來評估系統的負載狀況。ui
對於只有單核cpu的系統,1.0
是該系統所能承受負荷的邊界值,大於1.0則有處理須要等待。spa
一個單核cpu的系統,平均負載的合適值是0.7
如下。若是負載長期徘徊在1.0,則須要考慮立刻處理了。超過1.0的負載,可能會帶來很是嚴重的後果。.net
固然,多核cpu的系統是在前述值的基礎上乘以cpu內核的個數。如對於多核cpu的系統,有N個核則所能承受的邊界值爲N.0
。命令行
能夠使用以下命令來查看每一個處理器的信息:code
cat /proc/cpuinfo
若是隻想計算有多少個cpu內核,能夠使用以下命令:
cat /proc/cpuinfo | grep 'model name' | wc -l
Tasks: 322 total, 2 running, 320 sleeping, 0 stopped, 0 zombie / / / / / 進程總數 正運行進程數 睡眠進程數 中止進程數 殭屍進程數
%Cpu(s):
5.0 us 用戶空間CPU佔比 1.7 sy 內核空間CPU佔比 0.0 ni 用戶進程空間改過優先級的進程CPU佔比 93.0 id 空閒CPU佔比 0.0 wa 待輸入輸出CPU佔比 0.3 hi 硬中斷(Hardware IRQ)CPU佔比 0.0 si 軟中斷(Software Interrupts)CPU佔比 0.0 st -
KiB Mem: 1010504 total, 937416 used, 73088 free, 23708 buffers / / / / 物理內存總量 使用中總量 空閒總量 緩存的內存量
KiB Swap: 1046524 total, 280708 used, 765816 free, 365556 cached Mem / / / / 交換區總量 使用中總量 空閒總量 緩存的內存量
第七行及如下顯示了各進程(任務)的狀態監控。各列所表明的含義以下:
PID 進程id
USER 進程全部者
PR 進程優先級
NI nice值。負值表示高優先級,正值表示低優先級
VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
RES 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
SHR 共享內存大小,單位kb
S 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/中止 Z=殭屍進程
%CPU 上次更新到如今的CPU時間佔用百分比 %MEM 進程使用的物理內存百分比 TIME+ 進程使用的CPU時間總計,單位1/100秒 COMMAND 進程名稱(命令名/命令行)
按鍵b
打開或關閉 運行中進程的高亮效果
按鍵x
打開或關閉 排序列的高亮效果
shift + >
或 shift + <
能夠向右或左改變排序列
f
鍵,能夠進入編輯要顯示字段的視圖,有 * 號的字段會顯示,無 * 號不顯示,可根據頁面提示選擇或取消字段。