Linux命令工具 top詳解html
top命令是Linux下經常使用的性能分析工具,可以實時顯示系統中各個進程的資源佔用情況,相似於Windows的任務管理器。top是一個動態顯示過程,便可以經過用戶按鍵來不斷刷新當前狀態.若是在前臺執行該命令,它將獨佔前臺,直到用戶終止該程序爲止.比較準確的說,top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最「敏感」的任務列表.該命令能夠按CPU使用.內存使用和執行時間對任務進行排序;並且該命令的不少特性均可以經過交互式命令或者在我的定製文件中進行設定。
常在linux系統下玩,這是必須掌握的命令之一;
下面詳細說說這個命令:linux
敲入top進入:算法
top - 09:14:56 up 264 days, 20:56, 1 user, load average: 0.02, 0.04, 0.00 Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st Mem: 377672k total, 322332k used, 55340k free, 32592k buffers Swap: 397308k total, 67192k used, 330116k free, 71900k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 2856 656 388 S 0.0 0.2 0:49.40 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 7:15.20 ksoftirqd/0 4 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
09:14:56 : 系統當前時間
264 days, 20:56 : 系統開機到如今通過了多少時間
2 users : 當前2用戶在線
load average: 0.02, 0.04, 0.00: 系統1分鐘、5分鐘、15分鐘的CPU負載信息緩存
load average數據是每隔5秒鐘檢查一次活躍的進程數,而後按特定算法計算出的數值。若是這個數除以邏輯CPU的數量,結果高於5的時候就代表系統在超負荷運轉了。服務器
Tasks:任務;
87 total:很好理解,就是當前有87個任務,也就是87個進程。
1 running:1個進程正在運行
86 sleeping:86個進程睡眠
0 stopped:中止的進程數
0 zombie:僵死的進程數工具
Cpu(s):表示這一行顯示CPU整體信息
0.0%us:用戶態進程佔用CPU時間百分比,不包含renice值爲負的任務佔用的CPU的時間。
0.7%sy:內核佔用CPU時間百分比
0.0%ni:改變過優先級的進程佔用CPU的百分比
99.3%id:空閒CPU時間百分比
0.0%wa:等待I/O的CPU時間百分比
0.0%hi:CPU硬中斷時間百分比
0.0%si:CPU軟中斷時間百分比
注:這裏顯示數據是全部cpu的平均值,若是想看每個cpu的處理狀況,按1便可;摺疊,再次按1;性能
Men:內存的意思
8175320kk total:物理內存總量
8058868k used:使用的物理內存量
116452k free:空閒的物理內存量
283084k buffers:用做內核緩存的物理內存量spa
Swap:交換空間
6881272k total:交換區總量
4010444k used:使用的交換區量
2870828k free:空閒的交換區量
4336992k cached:緩衝交換區總量code
備註:htm
第四行中使用中的內存總量(used)指的是如今系統內核控制的內存數,空閒內存總量(free)是內核還未歸入其管控範圍的數量。歸入內核管理的內存不見得都在使用中,還包括過去使用過的如今能夠被重複利用的內存,內核並不把這些可被從新使用的內存交還到free中去,所以在linux上free內存會愈來愈少,但不用爲此擔憂。
若是出於習慣去計算可用內存數,這裏有個近似的計算公式:第四行的free + 第四行的buffers + 第五行的cached,按這個公式此臺服務器的可用內存:18537836k +169884k +3612636k = 22GB左右。
對於內存監控,在top裏咱們要時刻監控第五行swap交換分區的used,若是這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了。
再下面就是進程信息:
PID:進程的ID
USER:進程全部者
PR:進程的優先級別,越小越優先被執行
NI:nice值。負值表示高優先級,正值表示低優先級
VIRT:進程佔用的虛擬內存總量,單位kb。VIRT=SWAP+RES
RES:進程佔用的物理內存 (進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA)
SHR:進程使用的共享內存
S:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值爲負數
%CPU:進程佔用CPU的使用率
%MEM:進程使用的物理內存和總內存的百分比
TIME+:該進程啓動後佔用的總的CPU時間,即佔用CPU使用時間的累加值。單位1/100秒
COMMAND:進程啓動命令名稱
下面列出一些經常使用的 top命令操做指令
q:退出top命令 <Space>:當即刷新 s:設置刷新時間間隔 c:顯示命令徹底模式 t::顯示或隱藏進程和CPU狀態信息 m:顯示或隱藏內存狀態信息 l:顯示或隱藏uptime信息 f:增長或減小進程顯示標誌 S:累計模式,會把已完成或退出的子進程佔用的CPU時間累計到父進程的MITE+ P:按%CPU使用率排行 T:按MITE+排行 M:按%MEM排行 u:指定顯示用戶進程 r:修改進程renice值 kkill:進程 i:只顯示正在運行的進程 W:保存對top的設置到文件~/.toprc,下次啓動將自動調用toprc文件的設置。 h:幫助命令。 q:退出
注:強調一下,使用頻率最高的是P、T、M,由於一般使用top,咱們就想看看是哪些進程最耗cpu資源、佔用的內存最多;
注:經過」shift + >」或」shift + <」能夠向右或左改變排序列
若是隻須要查看內存:可用free命令。只查看uptime信息(第一行),可用uptime命令
高亮顯示當前運行進程:敲擊鍵盤「b」(打開/關閉加亮效果)
進程id爲2570的「top」進程被加亮了,top進程就是視圖第二行顯示的惟一的運行態(runing)的那個進程,能夠經過敲擊「y」鍵關閉或打開運行態進程的加亮效果。
參考:
http://www.cnblogs.com/me115/p/3842081.html
http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html