當前位置: 妍妍網 > 碼農

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

2024-06-30碼農

1.1 top

1.1.1 命令說明

Top 命令能夠即時監控系統的執行狀態,並且可以按照cpu、記憶體和執行時間進行排序

1.1.2 參數說明

  • 命令列啟動參數:

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

  • -b : 批次模式執行。通常用作來將top的輸出的結果傳送給其他程式或儲存成檔

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

  • -d : 設定延遲時間

  • -h : 幫助

  • -H : 顯示執行緒。當這個設定開啟時,將顯示所有行程產生的執行緒

  • -i : 顯示空閑的行程

  • -n : 執行次數。一般與-b搭配使用

  • -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、1024、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:開啟檔的確切名稱

  • <END>

    點這裏👇關註我,記得標星呀~

    感謝你的分享,點贊,在看三