Linux系統能夠經過top命令能夠動態地查看系統的CPU、內存、運行時間、交換分區、執行的線程等信息。經過top命令能夠有效的發現系統的缺陷出在哪裏。是內存不夠,仍是CPU處理能力不夠,亦或者是IO讀寫太高….linux
[root@ubuntu]# top
top - 21:31:26 up 15:16, 5 users, load average: 0.61, 0.82, 0.75
Tasks: 240 total, 2 running, 238 sleeping, 0 stopped, 0 zombie
%Cpu(s): 13.7 us, 1.5 sy, 0.0 ni, 84.2 id, 0.6 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3775264 total, 250100 free, 2495300 used, 1029864 buff/cache
KiB Swap: 4064252 total, 2789544 free, 1274708 used. 527664 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16507 kiosk 20 0 1935284 201988 10816 R 46.8 5.4 68:11.92 plugin-con+
15773 kiosk 20 0 1784208 497692 40776 S 4.7 13.2 37:05.32 firefox
408 root 20 0 36940 4116 3920 S 3.0 0.1 4:51.67 systemd-jo+
3789 kiosk 20 0 747664 14124 4696 S 2.0 0.4 2:49.76 gnome-term+
2404 root 20 0 439488 106688 84580 S 1.7 2.8 16:08.35 Xorg
2662 kiosk 9 -11 700096 5232 3032 S 1.7 0.1 5:17.25 pulseaudio
21632 kiosk 20 0 812940 167440 30100 S 1.7 4.4 20:15.48 wps
2688 kiosk 20 0 2111764 218776 18580 S 1.3 5.8 20:25.33 gnome-shell
663 root 20 0 399976 3352 2984 S 1.0 0.1 0:46.92 rsyslogd
7349 qemu 20 0 1697464 956932 556 S 0.7 25.3 5:03.80 qemu-kvm
7803 qemu 20 0 1697460 708164 544 S 0.7 18.8 4:16.74 qemu-kvm
18 root 20 0 0 0 0 S 0.3 0.0 0:16.94 rcuos/0
19 root 20 0 0 0 0 S 0.3 0.0 0:18.43 rcuos/1
21 root 20 0 0 0 0 S 0.3 0.0 0:19.62 rcuos/3
671 root 20 0 207984 160 120 S 0.3 0.0 0:01.60 abrt-watch+
5676 root 20 0 0 0 0 S 0.3 0.0 0:00.28 kworker/u1+
1 root 20 0 189128 2900 1432 S 0.0 0.1 0:06.11 systemd
複製代碼
top - 21:31:26 up 15:16, 5 users, load average: 0.61, 0.82, 0.75
複製代碼
這行信息與命令uptime顯示的信息相同。這些參數表明什麼含義呢?按順序一一對應:ios
系統當前時間 up 系統到目前爲止i運行的時間, 當前登錄系統的用戶數量, load average後面的三個數字分別表示距離如今一分鐘,五分鐘,十五分鐘的負載狀況。算法
注意:load average數據是每隔5秒鐘檢查一次活躍的進程數,而後按特定算法計算出的數值。若是這個數除以邏輯CPU的數量,結果高於5的時候就代表系統在超負荷運轉了。
shell
Tasks: 240 total, 2 running, 238 sleeping, 0 stopped, 0 zombie
複製代碼
按順序一一對應:ubuntu
tasks表示任務(進程),240 total則表示如今有240個進程,其中處於運行中的有2個,238個在休眠(掛起),stopped狀態即中止的進程數爲0,zombie狀態即殭屍的進程數爲0個。
spa
%Cpu(s): 13.7 us, 1.5 sy, 0.0 ni, 84.2 id, 0.6 wa, 0.0 hi, 0.0 si, 0.0 st
複製代碼
按順序一一對應:firefox
us:user 用戶空間佔用cpu的百分比
sy:system 內核空間佔用cpu的百分比
ni:niced 改變過優先級的進程佔用cpu的百分比
空閒cpu百分比
wa:IO wait IO等待佔用cpu的百分比
hi:Hardware IRQ 硬中斷 佔用cpu的百分比
si:software 軟中斷 佔用cpu的百分比
st:被hypervisor偷去的時間
命令行
KiB Mem : 3775264 total, 250100 free, 2495300 used, 1029864 buff/cache
複製代碼
按順序一一對應:線程
物理內存總量(3.7G),空閒內存總量(2.5G),使用中的內存總量(2.4G),緩衝內存量code
第四行中使用中的內存總量(used)指的是如今系統內核控制的內存數,空閒內存總量(free)是內核還未歸入其管控範圍的數量。歸入內核管理的內存不見得都在使用中,還包括過去使用過的如今能夠被重複利用的內存,內核並不把這些可被從新使用的內存交還到free中去,所以在linux上free內存會愈來愈少,但不用爲此擔憂。
KiB Swap: 4064252 total, 2789544 free, 1274708 used. 527664 avail Mem
複製代碼
按順序一一對應:
交換區總量(4G),空閒交換區總量(2.7G),使用的交換區總量(1.2G),可用交換取總量
對於內存監控,在top裏咱們要時刻監控第五行swap交換分區的used,若是這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
複製代碼
按順序一一對應:
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 — 進程名稱(命令名/命令行)