圖文說明:Linux監控命令全覆蓋

1.1 top

1.1.1 命令說明

Top 命令可以實時監控系統的運行狀態,而且能夠按照cpu、內存和執行時間進行排序node

 

1.1.2 參數說明

  • 命令行啓動參數:ios

  • 用法: top -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...]數組

  • -b : 批次模式運行。一般用做來將top的輸出的結果傳送給其餘程式或儲存成文件緩存

  • -c : 顯示執行任務的命令行安全

  • -d : 設定延遲時間網絡

  • -h : 幫助app

  • -H : 顯示線程。當這個設定開啓時,將顯示全部進程產生的線程socket

  • -i : 顯示空閒的進程tcp

  • -n : 執行次數。通常與-b搭配使用ide

  • -u : 監控指定用戶相關進程

  • -U : 監控指定用戶相關進程

  • -p : 監控指定的進程。當監控多個進程時,進程ID以逗號分隔。這個選項只能在命令行下使用

  • -s : 安全模式操做

  • -S : 累計時間模式

  • -v : 顯示top版本,而後退出。

  • -M : 自動顯示內存單位(k/M/G)

 

 

 

1.全局命令

  • 回車、空格 : 刷新顯示信息

  • ?、h : 幫助

  • = : 移除全部任務顯示的限制

  • A : 交替顯示模式切換

  • B : 粗體顯示切換

  • d、s : 更改界面刷新時間間隔

  • G : 選擇其它窗口/欄位組

  • I : Irix或Solaris模式切換

  • u、U : 監控指定用戶相關進程

  • k : 結束進程

  • q : 退出top

  • r : 從新設定進程的nice值

  • W : 存儲當前設定

  • Z : 改變顏色模板

2.摘要區命令

  • l : 平均負載及系統運行時間顯示開關

  • m : 內存及交換空間使用率顯示開關

  • t : 當前任務及CPU狀態顯示開關

1 : 彙總顯示CPU狀態或分開顯示每一個CPU狀態

 

1.任務區命令

  • 外觀樣式

  • b : 黑體/反色顯示高亮的行/列。控制x和y交互命令的顯示樣式

  • x : 高亮顯示排序的列

  • y : 高亮顯示正在運行的任務

  • z : 彩色/黑白顯示。

  • 顯示內容

  • c : 任務執行的命令行或進程名稱

  • f、o : 增長和移除進程信息欄位及調整進程信息欄位顯示順序

  • H : 顯示線程

  • S : 時間累計模式

  • u : 監控指定用戶相關進程

  • 任務顯示的數量

  • i : 顯示空閒的進程

  • n或# : 設置任務顯示最大數量

  • 任務排序(shift+f

  • M : 按內存使用率排序

  • N : 按PID排序

  • P : 按CPU使用率排序

  • T : 按Time+排序

  • < : 按當前排序欄位左邊相鄰欄位排序

  • > : 按當前排序欄位右邊相鄰欄位排序

  • F 或 O : 選擇排序欄位

  • R : 反向排序

 

 

1.1.3  結果說明

 

 

 

1.2 free

 

1.2.1  命令說明

 

Free命令是監控系統內存最經常使用的命令

1.2.2.參數說明

-m:以M爲單位查看內存使用狀況(默認爲kb)

-b:以字節爲單位查看內存使用狀況

-s:能夠在指定時間段內不簡單監控內存的使用狀況

 

 

1.2.3 結果說明

 

 

  • total:總計物理內存的大小。

  • Used:已使用多大。

  • Free:可用有多少。

  • shared:多個進程共享的內存總額。

  • buffers/cached:磁盤緩存的大小。

 

 

1.3 vmstat

1.1.1命令說明

能夠監控操做系統的進程狀態、內存、虛擬內存、磁盤IO、上下文、CPU的信息。

1.1.2參數說明

vmstat [-a] [-n] [-S unit] [delay [ count]]

  • -a:顯示活躍和非活躍內存

  • -m:顯示slabinfo

  • -n:只在開始時顯示一次各字段名稱。

  • -s:顯示內存相關統計信息及多種系統活動數量。

  • delay:刷新時間間隔。若是不指定,只顯示一條結果。

  • count:刷新次數。若是不指定刷新次數,但指定了刷新時間間隔,這時刷新次數爲無窮。

  • -d:顯示各個磁盤相關統計信息。

  • -S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別表明1000、102四、1000000、1048576字節(byte)。默認單位爲K(1024 bytes)

  • -V:顯示vmstat版本信息。

  • -p:顯示指定磁盤分區統計信息

  • -D:顯示磁盤整體信息

 

1.1.3 結果說明

 

 Procs

R:等待被執行的進程數,即表示運行和等待CPU時間片的進程數

B:排隊的進程數,即等待資源的進程數

 Memory

Swap : 虛擬內存,切換到虛擬內存的內存大小

Free: 空閒的物理內存大小

Buff: 緩衝區大小

Cache: 緩存大小

Swap

Si:磁盤寫入虛擬內存,即由內存進入到虛擬內存的大小。

So:虛擬內存寫入磁盤,即由虛擬內存進入到磁盤的大小。

 

 Io

Bi:由塊設備讀入的數據總量,讀磁盤

Bo:由塊設備寫入的數據總量,寫磁盤

 System

In: 每秒設備中斷數

Cs:每秒上下文切換的次數

Cpu

Us:用戶進程消耗cpu百分比

Sy:內核進程消耗cpu百分比

Id:cpu處於空閒狀態的時間百分比

Wa:Io等待cpu所佔時間的百分比

 

 

1.4 iostat

1.4.1命令說明

Iostat是對系統磁盤IO操做進行監控,它的輸出主要顯示磁盤的讀寫操做的統計信息。同時給出cpu的使用狀況

1.4.2參數說明

iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]
各選項以及參數含義以下:

  • -c: 僅顯示CPU統計信息.與-d選項互斥.

  • -d :僅顯示磁盤統計信息.與-c選項互斥.

  • -k :以K爲單位顯示每秒的磁盤請求數,默認單位塊.

  • -p :device | ALL
         與-x選項互斥,用於顯示塊設備及系統分區的統計信息.也能夠在-p後指定一個設備名,如:
         # iostat -p had

或顯示全部設備
     # iostat -p ALL
-t :在輸出數據時,打印蒐集數據的時間.
-V :打印版本號和幫助信息.
-x  device  輸出指定要統計的磁盤設備名稱,默認爲全部磁盤設備.

-          interval :指兩次統計間隔時間

-          count :按照interval 指定的時間間隔統計的次數

 

1.4.3結果說明

 

Iostat的簡單應用

 

Iostat磁盤監控

 

  • rrqm/s:每秒進行 merge 的讀操做數目,即 delta(rmerge)/s 。

  • wrqm/s:每秒進行 merge 的寫操做數目,即 delta(wmerge)/s 。

  • r/s:每秒完成的讀 I/O 設備次數,即 delta(rio)/s 。

  • w/s: 每秒完成的寫 I/O 設備次數,即 delta(wio)/s 。

  • rsec/s:每秒讀扇區數,即 delta(rsect)/s。

  • wsec/s:每秒寫扇區數,即 delta(wsect)/s

  • rkB/s:每秒讀K字節數,是 rsect/s 的一半,由於每扇區大小爲512字節。

  • wkB/s:每秒寫K字節數,是 wsect/s 的一半

  • avgrq-sz:平均每次設備I/O操做的數據大小 (扇區),即                                                               delta(rsect+wsect)/delta(rio+wio) 。

  • avgqu-sz:平均I/O隊列長度,即 delta(aveq)/s/1000 (由於aveq的單位爲毫秒)。

  • Await:平均每次設備I/O操做的等待時間 (毫秒),即  delta(ruse+wuse)/delta(rio+wio) 。

  • Svctm:平均每次設備I/O操做的服務時間 (毫秒),即 delta(use)/delta(rio+wio) 。

  • %util:一秒中有百分之多少的時間用於 I/O 操做,或者說一秒中有多少時間 I/O 隊列是非空的,
       即 delta(use)/s/1000 (由於use的單位爲毫秒) 。

 

 

 

Iostat   cpu 監控

 

  • %usr:用戶進程消耗的CPU時間百分比。

  • %nice:  運行正常進程消耗的CPU時間百分比。

  • %system:系統進程消耗的CPU時間百分比。

  • %iowait:I/O等待所佔CPU時間百分比。

  • %steal:在內存緊張環境下,pagein強制對不一樣的頁面進行的steal操做。

  • %idle:CPU空閒狀態的時間百分比。

 

1.5 mpstat

1.5.1命令說明

Mpstat能夠監控到cpu的一些統計信息,在多核cpu的系統裏不但可以查看全部cpu的平均情況信息,並且可以查看特定的cpu的信息

 

1.5.2參數說明

      mpstat [-P {|ALL}] [internal [count]]

 

參數:

 

    (1)-P {|ALL}:表示監控哪一個CPU,在[0,cpu個數-1]中取值;

 

    (2)internal:相鄰的兩次採樣的間隔時間;

 

    (3)count:採樣的次數,count只能和delay一塊兒使用;

 

      備註:當沒有參數時,mpstat則顯示系統啓動之後全部信息的平均值。有interval時,第一行的信息自系統啓動以來的平均信息。從第二行開始,輸出爲前一個interval時間段的平均信息。

 

 

 

1.5.3結果說明

 

 

 

(1)user:在internal時間段裏,用戶態的CPU時間(%),不包含nice值爲負進程,值爲 (usr/total)*100;

 

(2)nice:在internal時間段裏,nice值爲負進程的CPU時間(%),值爲(nice/total)*100;

 

(3)system:在internal時間段裏,核心時間(%),值爲(system/total)*100;

 

(4)iowait:在internal時間段裏,硬盤IO等待時間(%),值爲(iowait/total)*100;

 

(5)irq:在internal時間段裏,硬中斷時間(%),值爲(irq/total)*100;

 

(6)soft:在internal時間段裏,軟中斷時間(%),值爲(softirq/total)*100;

 

(7)idle:在internal時間段裏,CPU除去等待磁盤IO操做外的由於任何緣由而空閒的時間閒置時間(%),值爲(idle/total)*100;

 

(8)intr/s:在internal時間段裏,每秒CPU接收的中斷的次數,值爲(intr/total)*100;

 

1.6 sar

1.6.1命令說明

Sar命令能夠全名的獲取到cpu 、運行、磁盤IO、虛擬內存、內存、網絡等信息。

 

1.6.2參數說明

sar 命令行的經常使用格式: 
sar [options] [-A] [-o file] t [n] 
在命令行中,n 和t 兩個參數組合起來定義採樣間隔和次數,t爲採樣間隔,是必須有的參數,n爲採樣次數,是可選的,默認值是1,-o file表示將命令結果以二進制格式存放在文件中,file 在此處不是關鍵字,是文件名。options 爲命令行選項,sar命令的選項不少,下面只列出經常使用選項: 

  • -A:全部報告的總和。 

  • -u:CPU利用率

  • -v:進程、節點、文件和鎖表狀態。 

  • -p:像是當前系統中指定CPU使用信息。

  • -d:硬盤使用報告。

  • -r:顯示系統內存的使用狀況。 

  • -n:顯示網絡運行狀態。參數後面可跟DEV、EDEV、SOCK和FULL。DEV顯示網絡接口信息,EDEV顯示網絡錯誤的統計數據,SOCK顯示套接字信息,FULL顯示前三參數全部信息。

  • -q:顯示運行隊列的大小,它與系統當時的平均負載相同

  • -B:內存分頁狀況

  • -R:顯示進程在採樣時間內的活動狀況。

  • -g:串口I/O的狀況。

  • -b:緩衝區使用狀況。

  • -a:文件讀寫狀況。

  • -c:系統調用狀況。

  • -R:進程的活動狀況。

  • -y:終端設備活動狀況。

  • -W:系統交換活動。

 

1.6.3結果說明

Cpu資源監控

 

CPU:all 表示統計信息爲全部 CPU 的平均值。

%user:顯示在用戶級別(application)運行使用 CPU 總時間的百分比。

%nice:顯示在用戶級別,用於nice操做,所佔用 CPU 總時間的百分比。

%system:在覈心級別(kernel)運行所使用 CPU 總時間的百分比。

%iowait:顯示用於等待I/O操做佔用 CPU 總時間的百分比。

%steal:管理程序(hypervisor)爲另外一個虛擬進程提供服務而等待虛擬 CPU 的百分比。

%idle:顯示 CPU 空閒時間佔用 CPU 總時間的百分比。

1. 若 %iowait 的值太高,表示硬盤存在I/O瓶頸

2. 若 %idle 的值高但系統響應慢時,有多是 CPU 等待分配內存,此時應加大內存容量

1. 若 %idle 的值持續低於1,則系統的 CPU 處理能力相對較低,代表系統中最須要解決的資源是 CPU 。

若是要查看二進制文件test中的內容,需鍵入以下sar命令:

sar -u -f test

 

 

 

Inode、文件和其餘內核表監控

 

 

Dentunued: 目錄告訴緩存中未被使用的條目數量

File-nr: 文件句柄的使用數量

Inode-nr: 索引節點句柄的使用數量

Pty-nr :使用的pty的數量

 

 

 

內存和交換空間監控

 

kbmemfree:這個值和free命令中的free值基本一致,因此它不包括buffer和cache的空間.

kbmemused:這個值和free命令中的used值基本一致,因此它包括buffer和cache的空間.

%memused:這個值是kbmemused和內存總量(不包括swap)的一個百分比.

kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache.

kbcommit:保證當前系統所須要的內存,即爲了確保不溢出而須要的內存(RAM+swap).

%commit:這個值是kbcommit與內存總量(包括swap)的一個百分比.

 

 

 

內存分頁監控

 

pgpgin/s:表示每秒從磁盤或SWAP置換到內存的字節數(KB)

pgpgout/s:表示每秒從內存置換到磁盤或SWAP的字節數(KB)

fault/s:每秒鐘系統產生的缺頁數,即主缺頁與次缺頁之和(major + minor)

majflt/s:每秒鐘產生的主缺頁數.

pgfree/s:每秒被放入空閒隊列中的頁個數

pgscank/s:每秒被kswapd掃描的頁個數

pgscand/s:每秒直接被掃描的頁個數

pgsteal/s:每秒鐘從cache中被清除來知足內存須要的頁個數

%vmeff:每秒清除的頁(pgsteal)佔總掃描頁(pgscank+pgscand)的百分比

 

 

IO和傳送速率監控

 

 

tps:每秒鐘物理設備的 I/O 傳輸總量

rtps:每秒鐘從物理設備讀入的數據總量

wtps:每秒鐘向物理設備寫入的數據總量

bread/s:每秒鐘從物理設備讀入的數據量,單位爲 塊/s

bwrtn/s:每秒鐘向物理設備寫入的數據量,單位爲 塊/s

 

 

 

 

 

進程隊列長度和平均負載狀態監控

 

runq-sz:運行隊列的長度(等待運行的進程數)

plist-sz:進程列表中進程(processes)和線程(threads)的數量

ldavg-1:最後1分鐘的系統平均負載(System load average)

ldavg-5:過去5分鐘的系統平均負載

ldavg-15:過去15分鐘的系統平均負載

 

系統交換活動信息監控

 

 

pswpin/s:每秒系統換入的交換頁面(swap page)數量

pswpout/s:每秒系統換出的交換頁面(swap page)數量

 

 

 

設備使用狀況監控

 

參數-p能夠打印出sda,hdc等磁盤設備名稱,若是不用參數-p,設備節點則有多是dev8-0,dev22-0

 

tps:每秒從物理磁盤I/O的次數.多個邏輯請求會被合併爲一個I/O磁盤請求,一次傳輸的大小是不肯定的.

rd_sec/s:每秒讀扇區的次數.

wr_sec/s:每秒寫扇區的次數.

avgrq-sz:平均每次設備I/O操做的數據大小(扇區).

avgqu-sz:磁盤請求隊列的平均長度.

await:從請求磁盤操做到系統完成處理,每次請求的平均消耗時間,包括請求隊列等待時間,單位是毫秒(1秒=1000毫秒).

svctm:系統處理每次請求的平均時間,不包括在請求隊列中消耗的時間.

%util:I/O請求佔CPU的百分比,比率越大,說明越飽和.

1. avgqu-sz 的值較低時,設備的利用率較高。

2. 當%util的值接近 1% 時,表示設備帶寬已經佔滿。

 

 

1.7 netstat

1.7.1命令說明

Netstat 命令用於顯示本機網絡連接、運行端口、路由表等信息

 

1.7.2參數說明

netstat [選項]

  • -a (all):顯示一個全部的有效鏈接信息列表,包括已創建的鏈接(ESTABLISHED),也包括監聽鏈接請求(LISTENING)的那些鏈接,斷開鏈接(CLOSE_WAIT)或者處於聯機等待狀態的(TIME_WAIT)等

  • -t (tcp):顯示tcp相關選項

  • -u (udp):僅顯示udp相關選項

  • -n :拒絕顯示別名,能顯示數字的所有轉化成數字。

  • -l :僅列出有在 Listen (監聽) 的服務狀態

  • -p :顯示創建相關連接的程序名

  • -r :顯示路由信息,路由表,除了顯示有效路由外,還顯示當前有效的鏈接

  • -e :顯示擴展信息,例如uid等

  • -s :按各個協議進行統計

  • -c :每隔一個固定時間,執行該netstat命令。

  • -v :顯示當前的有效鏈接,與-n選項相似

  • -I :顯示自動匹配接口的信息

  • -e :顯示關於以太網的統計數據。它列出的項目包括傳送的數據報的總字節數、錯誤數、刪除數、數據報的數量和廣播的數量。這些統計數據既有發送的數據報數量,也有接收的數據報數量。這個選項能夠用來統計一些基本的網絡流量。

         提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到

 

1.7.3結果說明

 

 

  • Iface:表示網絡設備的接口名稱。

  • MTU:表示最大傳輸單元,單位爲字節。

  • RX-OK/TX-OK:表示已經準確無誤地接收/發送了多少數據包。

  • RX-ERR/TX-ERR:表示接收/發送數據包時候產生了多少錯誤。

  • RX-DRP/TX-DRP:表示接收/發送數據包時候丟棄了多少數據包。

  • RX-OVR/TX-OVR:表示因爲偏差而丟失了多少數據包。

  • Flg表示接口標記,其中

    B 已經設置了一個廣播地址。

    L 該接口是一個回送設備。

    M 接收全部數據包(混亂模式)。

    N 避免跟蹤。

    O 在該接口上,禁用A R P。

    P 這是一個點到點連接。

    R 接口正在運行。

    U 接口處於「活動」狀態。

其中RX-ERR/TX-ERR、 RX-DRP/TX-DRP和RX-OVR/TX-OVR的值應該都爲0,若是不爲0,而且很大,那麼網絡質量確定有問題,網絡傳輸性能也一代會降低。

 

 

  • Recv-Q:表示接收隊列。

  • Send-Q :表示發送隊列。

  • Local Address :表示本地機器名、端口

  • Foreign Address :表示遠程機器名、端口

  • State:表示狀態,其中

         LISTEN :在監聽狀態中。
         ESTABLISHED:已創建聯機的聯機狀況。
         TIME_WAIT:該聯機在目前已是等待的狀態。

 

 

 

1.8 uptime

1.8.1 命令說明

Uptime主要是用來統計系統當前的運行狀態

 

1.8.2參數說明

 

-V  顯示版本

1.8.3 結果說明

 

 

  • 輸出信息依次是:系統如今的時間,系統從上次開機到如今運行了多長時間,系統當前有多少個登陸用戶,系統在一分鐘內、5分鐘內、15分鐘內的平均負載

  • 注意點:若是load average值長期大於系統CPU的個數則說明CPU很繁忙,負載很高,可能會影響系統性能

 

1.9 ps

1.9.1命令說明

Ps命令是進程查看命令,使用這個命令能夠肯定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等。

 

1.9.2參數說明

經常使用參數:

 

  • -A 顯示全部進程(等價於-e)(utility)

  • -a 顯示一個終端的全部進程,除了會話引線

  • -N 忽略選擇。

  • -d 顯示全部進程,但省略全部的會話引線(utility)

  • -x 顯示沒有控制終端的進程,同時顯示各個命令的具體路徑。dx不可合用。(utility)

  • -p pid 進程使用cpu的時間

  • -u uid or username 選擇有效的用戶id或者是用戶名

  • -g gid or groupname 顯示組的全部進程。

  • U username 顯示該用戶下的全部進程,且顯示各個命令的詳細路徑。如:ps U zhang;(utility)

  • -f 所有列出,一般和其餘選項聯用。如:ps -fa or ps -fx and so on.

  • -l 長格式(有F,wchan,C 等字段)

  • -j 做業格式

  • -o 用戶自定義格式。

  • v 以虛擬存儲器格式顯示

  • s 以信號格式顯示

  • -m 顯示全部的線程

  • -H 顯示進程的層次(和其它的命令合用,如:ps -Ha)(utility)

  • e 命令以後顯示環境(如:ps -d e; ps -a e)(utility)

  • h 不顯示第一行

 

 

 

經常使用用法:

 

  • ps a: 顯示現行終端機下的全部程序,包括其餘用戶的程序。

  • ps -A :顯示全部程序。

  • ps c :列出程序時,顯示每一個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。

  • ps -e :此參數的效果和指定"A"參數相同。

  • ps e :列出程序時,顯示每一個程序所使用的環境變量。

  • ps f :用ASCII字符顯示樹狀結構,表達程序間的相互關係。

  • ps -H:顯示樹狀結構,表示程序間的相互關係。

  • ps –N:顯示全部的程序,除了執行ps指令終端機下的程序以外。

  • ps s:採用程序信號的格式顯示程序情況。

  • ps S :列出程序時,包括已中斷的子程序資料。

  • ps -t<終端機編號> :指定終端機編號,並列出屬於該終端機的程序的情況。

  • ps u:以用戶爲主的格式來顯示程序情況。

  • ps x:顯示全部程序,不以終端機來區分。

  • Ps -l:較長較詳細的顯示該pid信息

         最經常使用的方法是ps -aux,而後再利用一個管道符號導向到grep去查找特定的進程,而後再對特定的進程進行操做。

 

 

1.9.3結果說明

 

 

  • USER    用戶名

  • UID    用戶ID(User ID)

  • PID    進程ID(Process ID)

  • PPID    父進程的進程ID(Parent Process id)

  • SID    會話ID(Session id)

  • %CPU    進程的cpu佔用率

  • %MEM    進程的內存佔用率

  • VSZ    進程所使用的虛存的大小(Virtual Size)

  • RSS    進程使用的駐留集大小或者是實際內存的大小,Kbytes字節。

  • TTY    與進程關聯的終端(tty)

  • STAT    進程的狀態:進程狀態使用字符表示的(STAT的狀態碼)

    • R 運行    Runnable (on run queue)            正在運行或在運行隊列中等待。

    • S 睡眠    Sleeping                休眠中, 受阻, 在等待某個條件的造成或接受到信號。

    • I 空閒    Idle

    • Z 僵死    Zombie(a defunct process)        進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放。

    • D 不可中斷    Uninterruptible sleep (ususally IO)    收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生。

    • T 終止    Terminate                進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後中止運行運行。

    • P 等待交換頁

    • W 無駐留頁    has no resident pages        沒有足夠的記憶體分頁可分配。

    • X 死掉的進程

    • < 高優先級進程                    高優先序的進程

    • N 低優先    級進程                    低優先序的進程

    • L 內存鎖頁    Lock                有記憶體分頁分配並縮在記憶體內

    • s 進程的領導者(在它之下有子進程);

    • l 多進程的(使用 CLONE_THREAD, 相似 NPTL pthreads)

    • + 位於後臺的進程組

    • START    進程啓動時間和日期

    • TIME    進程使用的總cpu時間

    • COMMAND    正在執行的命令行命令

    • NI    優先級(Nice)

    • PRI    進程優先級編號(Priority)

    • WCHAN    進程正在睡眠的內核函數名稱;該函數的名稱是從/root/system.map文件中得到的。

    • FLAGS    與進程相關的數字標識

 

1.10 watch

 

1.10.1命令說明

實時監測命令,還能夠檢測其餘命令運行狀況的命令

 

1.10.2參數說明

 

-d 高亮顯示變更

 

-n 週期(秒)

1.10.3結果說明

 

Watch –d –n 1 netstat -ant

 

 

每秒監測網絡,高亮顯示變化。

 

1.11 strace

1.11.1命令說明

Strace命令用來跟蹤進程執行時的系統調用和所接收的信號。在Linux世界,進程不能直接訪問硬件設備,當進程須要訪問硬件設備(好比讀取磁 盤文件,接收網絡數據等等)時,必須由用戶態模式切換至內核態模式,經過系統調用訪問硬件設備。strace能夠跟蹤到一個進程產生的系統調用,包括參 數,返回值,執行消耗的時間

1.11.2參數說明

 

strace使用參數

  • -p:跟蹤指定的進程。

  • -f:跟蹤由fork子進程系統調用。

  • -F:嘗試跟蹤vfork子進程系統調吸入,與-f同時出現時, vfork不被跟蹤。

  • -o filename:默認strace將結果輸出到stdout。經過-o能夠將輸出寫入到filename文件中。

  • -ff:常與-o選項一塊兒使用,不一樣進程(子進程)產生的系統調用輸出到filename.PID文

  • -r:打印每個系統調用的相對時間。

  • -t:在輸出中的每一行前加上時間信息。 -tt 時間肯定到微秒級。還可使用-ttt打印相對時間。

  • -v:輸出全部系統調用。默認狀況下,一些頻繁調用的系統調用不會輸出。

  • -s:指定每一行輸出字符串的長度,默認是32。文件名一直所有輸出。

  • -c:統計每種系統調用所執行的時間,調用次數,出錯次數。

  • -e expr:輸出過濾器,經過表達式,能夠過濾出掉你不想要輸出。

  • -d:輸出strace關於標準錯誤的調試信息。

  • -h:輸出簡要的幫助信息。

  • -i:輸出系統調用的入口指針。

  • -q:禁止輸出關於脫離的消息。

  • -tt:在輸出中的每一行前加上時間信息,微秒級。

  • -T:顯示每一調用所耗的時間。

  • -V :輸出strace的版本信息。

  • -x:以十六進制形式輸出非標準字符串。

  • -xx:全部字符串以十六進制形式輸出。

 

 

1.11.3結果說明

strace -ff -F -o ls.log ls –l   跟蹤ls –l命令的執行狀況

 

 

當某個函數執行失敗時,那麼返回值通常爲-1

 

1.12  lsof

1.12.1命令說明

Lsof的原始功能是列出打開的文件的進程。Linux下一切皆文件。

 

1.12.2參數說明

 

  • -a :列出打開文件存在的進程

  • -c<進程名> :列出指定進程所打開的文件

  • -g :列出GID號進程詳情

  • -d<文件號> :列出佔用該文件號的進程

  • +d<目錄> :列出目錄下被打開的文件

  • +D<目錄> :遞歸列出目錄下被打開的文件

  • -n<目錄> :列出使用NFS的文件

  • -i<條件> :列出符合條件的進程。

  • -p<進程號>: 列出指定進程號所打開的文件

  • -u 後面跟username:列出該用戶相關進程所打開文件

  • -U :僅列出系統socket文件類型

  • -h:顯示幫助信息

  • -v:顯示版本信息

 

1.12.3結果說明

列出全部root用戶下的socket文件進程

 

 

 

  • COMMAND:進程的名稱

  • PID:進程標識符

  • USER:進程全部者

  • FD:文件描述符,應用程序經過文件描述符識別該文件。如cwd、txt等

  • TYPE:文件類型,如DIR、REG等

  • DEVICE:指定磁盤的名稱

  • SIZE:文件的大小

  • NODE:索引節點(文件在磁盤上的標識)

  • NAME:打開文件的確切名稱

相關文章
相關標籤/搜索