天天看點

Linux- 系統資源管理——iostat/vmstat/pkill/pgrep/pidstat/killall5/sar/AIDE

1  iostat

功能:輸出CPU和磁盤I/O相關的統計資訊

文法:iostat  選項  延遲  計數

1)iostat

第一行:kernel版本(完整主機名) 報告生成日期  系統架構(CPU數)

第三行:avg-cpu(CPU的平均值)

%user  :使用者運作程序所占用的CPU百分比

%nice  :程序優先級操作占用的CPU百分比

%sys   :系統級别(kernel)運作所使用的CPU百分比

%iowait:CPU等待硬體I/O時所占用的CPU百分比

%steal :st 的全稱是 Steal Time ,就是 Xen Hypervisor 配置設定給運作在其它虛拟機上的任務的實際 CPU 時間。

%idle  :CPU空閑時間的百分比

第六行:device(硬碟裝置)

    tps:每秒鐘傳輸的IO請求的數量     KB_read/s:裝置每秒鐘讀取的數量

    KB_wrtn/s:裝置每秒鐘寫入的數量    KB_read:裝置讀出的總數

    KB_wrtn:裝置寫入的總數

2)iostat參數

-c 僅顯示cpu資訊                        -d 僅顯示磁盤資訊

-k 以k為機關顯示磁盤每秒請求的塊數      -t 顯示報告生成時間

    -p device | all 顯示指定或所有的塊裝置資訊   -x 輸出擴充資訊[與-p參數沖突]

-N 顯示裝置映射名                        -V 顯示iostat版本資訊

3)#iostat   –d   2                 //每2秒顯示一次裝置統計資訊  

#iostat   –d   2   6             //每2秒顯示一次裝置統計資訊

#iostat   –dNk   2   10         //每2秒以K為機關顯示一次裝置統計資訊,且顯示LVM映射名稱,共10次

2  vmstat

功能:監控CPU、記憶體、虛拟記憶體交換、IO讀寫等各種情況的使用

    文法:vmstat  選項  延遲  計數

1)#vmstat         //顯示目前系統的各項資訊

輸出結果:

proc(程序)

    r:表示運作隊列(即:多少程序真正的配置設定到CPU)

    b:阻塞隊列(等待資源配置設定的程序數)

  1. memory(記憶體)

swap:目前swap使用k數的情況

free:目前實體記憶體空閑的k數

buff:記憶體使用的buff總數,一般為塊裝置操作,文檔權限記錄等

cache:記憶體使用的cached總數,一般打開檔案,運作程式時使用

swap(虛拟記憶體)

si:每秒鐘從磁盤讀入到swap的大小(不可長期大于0)

so:每秒鐘從swap寫入到磁盤的大小(不可長期大于0)

IO(塊裝置IO)

bi:塊裝置每秒鐘接收到的塊數

bo:塊裝置每秒鐘發送的塊數

system(系統情況)

in:系統每秒中斷總數(含時鐘中斷)

cs:每秒上下文切換的次數(系統調用,環境變化等)

CPU(cpu情況)

us:使用者(及優先級)占用CPU時間

sy:系統(kernel)占用CPU時間

id:閑置CPU時間

wa:IO等待CPU時間

st:一個虛拟機占用的CPU時間

2)#vmstat   2   10                    //每2秒采樣1次,總計10次

#vmstat   5                         //每5秒檢測一次,直至手工停止

3  pkill

功能:控制同名程式的所有程序

文法:pkill 選項 pattern(模式)

1)參數:-G  gidlist——僅比對真實組ID在給定清單中的程序。每一個組ID可以使用組名稱或者數字的組ID指定。

-P  ppidlist——僅比對給定清單中PPID的程序。

-t  termlist——僅比對與給定清單中終端關聯的程序。每一個終端指定為在/dev中終端裝置路徑名稱的字尾。例如term/a 或者 pts/0。

-U  uidlist——僅比對真實的使用者ID在給定清單中的程序。

-u  euidlist——僅比對有效使用者ID在給定清單中的程序

-signal——指定發往每一個比對程序的信号。如果沒有指定,SIGTERM 是預設的信号。

-x——僅認為程序其參數字元串或者執行檔案名稱正确比對規定模式是比對的程序。

2)将某個終端的使用者踢出    pkill   -kill   -t   pts/2

按使用者名踢出使用者       pkill   -kill   -U   arisa

強制使arisa賬戶登出    pkill   -9   -u   arisa

3)當利用pkill對PPID程序操作時,實際上僅針對此PPID的子程序操作,而不會對指定的PPID進行操作。如:

建立使用者aa,修改賬戶密碼,使用aa賬戶在其他終端登入,運作指令:sleep 10000s

使用root賬戶,運作 #pstree  –p  aa來檢視aa使用者的登入shell和其下運作的程序

使用pkill  –P  PID或 pkill  –SIGKILL  –P  PID指令殺死aa的登入shell程序号,再用指令 #pgrep   -l   -u   aa可檢視到aa使用者的登入shell程序并未被殺死,但其下子程序均以被殺死

注:如果系統内沒用pstree指令,可以安裝psmisc軟體包

4  pgrep

功能:程式檢查在系統的中活動程序,報告程序屬性比對指令行上指定條件的程序的ID。

參數:與pkill一緻,-l 以長格式輸出,僅對pgrep有效

1)獲得一root賬戶指定的sshd的PID       #pgrep   -x   -u   root   sshd

2)顯示指定賬戶aa所執行的PID及相關名稱 #pgrep   -l   -u   aa

5  pidstat

功能:監控被Linux核心管理的獨立任務(程序)

說明:它輸出每個受核心管理的任務的相關資訊。

pidstat指令也可以用來監控特定程序的子程序。間隔參數用于指定每次報告間的時間間隔。它的值為0(或者沒有參數)說明程序的統計資料的時間是從系統啟動開始計算的。

1)pidstat

第一行:略

第三行:程序啟動時間 UID    PID

%usr - 當在使用者層執行(應用程式)時這個任務的cpu使用率,和 nice 優先級無關。注意這個字段計算的cpu時間不包括在虛拟處理器中花去的時間。

%system – 這個任務在系統層使用時的cpu使用率。

%guest – 任務花費在虛拟機上的cpu使用率(運作在虛拟處理器)。

%CPU – 任務總的cpu使用率。在SMP環境(多處理器)中,如果在指令行中輸入-I參數的話,cpu使用率會除以你的cpu數量。

CPU - 正在運作這個任務的處理器編号。

Command - 這個任務的指令名稱。

2)顯示PID2864的IO資訊

#pidstat   –d   –p   2864

kB_rd/s - 任務從硬碟上的讀取速度(kb)

kB_wr/s - 任務向硬碟中的寫入速度(kb)

kB_ccwr/s - 任務寫入磁盤被取消的速率(kb)

3)顯示PID2864的記憶體使用情況的資料

#pidstat   -r   -p   2864

minflt/s – 從記憶體中加載資料時每秒出現的小的錯誤的數目,這些不要求從磁盤載入記憶體頁面。

majflt/s - 從記憶體中加載資料時每秒出現的較大錯誤的數目,這些要求從磁盤載入記憶體頁面。

VSZ – 虛拟容量:整個程序的虛拟記憶體使(kb)

RSS - 長期記憶體使用:任務的不可交換實體記憶體的使用量(kb)

4)其他:

顯示5次page faults的統計資料結果,每次間隔2秒—— #pidstat  -r  2  5

顯示所有mysql伺服器的子程序  #pidstat   -T   CHILD   -C   mysql

統計所有資料并生成一個新的報告   #pidstat   -urd   -h

6  killall5

功能:控制系統中的所有程序

文法:killall5 信号 程序名

例:關閉所有程序  #killall5   -9

7  sar 

system Activity Reporter系統活動情況報告

功能:linux系統性能分析工具,可分析Linux系統的檔案系統讀寫情況,系統調用的使用情況,磁盤IO,CPU使用率,記憶體使用,程序活動等

文法:sar 操作 -A -o file -t n

參數:-t   n1   n2——指定n1的采樣間隔時間n1(秒),及總共采樣次數n2

-o——以2進制格式記錄至指定檔案中     -A——所有采樣報告的總和

-u——采樣并輸出CPU資訊              -v——輸出

dentunusd——目錄高速緩存中未使用的緩存條目編号

file-nr——檔案句柄的使用量              inode-nr—— i節點使用量

pty-nr——僞終端的pty數量              -d——輸出每個裝置的活動資訊

-r——記憶體與swap的統計資訊            -b——顯示IO與傳送率的統計資訊

-a檔案的讀寫情況                       -c程序統計情況,每秒建立的程序數目

-R輸出記憶體頁的統計資訊                 -y 終端裝置活動情況統計資訊

-w 輸出系統交換活動的統計資訊

1)對CPU使用情況每10秒采樣1次,連續3次。并寫入檔案test中.

#sar   -u   -o   test   -t   10   3

2)檢視2進制檔案test    #sar   -f   test

輸出結果:

CPU 所統計的CPU數,all為所有         %user 顯示user占用CPU百分比

%nice 顯示程序優先級占用CPU百分比   %idel CPU閑置百分比

%system 顯示kernel函數(系統調用)占用CPU百分比

%iowait 顯示IO操作等待所占用的CPU百分比

%steal 顯示管理程式為虛拟程序提供服務而等待虛拟CPU所占用百分(xen)

報告生成時間                         average 各列項的平均值

3)檢視記憶體和swap      #sar   -r   1   1

kbmemfree 與free 指令中的free值基本一緻,不包括buffer 和 cache的空間

kbmemused 與free指令中used值一緻,包括buffer和cache所使用的值

%memused 實體記憶體使用的百分比,不包含swap

kbbuffer 等同free指令中的buffer值

kbcache 等同free指令中的cache值

kbcommit 確定系統(防止記憶體溢出)所需要的記憶體數量(實體記憶體+SWAP)

%commit 需要記憶體數量與總記憶體(實體記憶體+swap)的百分比

報告生成時間                 averages 各列項的平均值

4)記憶體分頁監控  #sar   -B   1   1

pgpgin/s 從磁盤或SWAP置換到記憶體每秒的KB數

pgpgout/s 從記憶體置換到磁盤或SWAP每秒KB數

fault/s 每秒鐘系統産生的缺頁數(主缺頁+次缺頁)之和(缺頁:資料未在記憶體内)

majflt/s 每秒鐘産生的主缺頁

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

pgscank/s 每秒被kswapd掃描(置換到swap)的頁個數

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

pgsteal/s 每秒鐘從cache中清除出來滿足記憶體需求的頁個數

%vmeff 每秒清除的頁個數占總掃描頁(pgscank/s+gpscand)個數的百分比

報告生成時間                 average 各列項的平均值

5)IO與傳送速率監控 #sar   –b   1   1

tps/s 每秒鐘實體裝置IO傳輸總量

rtps/s 每秒鐘對實體裝置讀的資料總量

wtps/s 每秒鐘對實體裝置寫的資料總量

bread/s 每秒鐘對實體裝置讀的資料量(塊/s)

bwrtn/s 每秒鐘對實體裝置寫的資料量(塊/s)

報告生成時間       average 各列項的平均值

6)程序隊列長度與平均負載狀态監控 #sar   -q   1   1

runq-sz 等待運作的程序數(運作隊列的長度)

plist-sz 程序清單中processes(程序)和threads(線程)的數量

ldavg-1 最後1分鐘系統的平均負載

ldavg-5 最後5分鐘的系統平均負載數

ldavg-15 最後15分鐘的系統平均負載數

報告生成時間           average 各列項的平均值

7)系統交換活動資訊監控  #sar   –W   1   1

pswpin/s 每秒系統進入swap page的數量

pswpout/s 每秒系統讀出swap page的數量

報告生成時間           average 各列項的平均值

8)裝置使用情況監控,并顯示裝置名稱而不用裝置節點号顯示  #sar   -d   –p   1   1

DEV 裝置名稱                   tps 每秒對實體磁盤I/O的次數

rd_sec/s 每秒讀取扇區的次數      wr_sec/s 每秒寫入扇區的次數

avgrq-sz 平均每次裝置I/O操作的資料大小(扇區)

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

await 從請求磁盤操作到系統完成處理,每次請求所消耗的平均時間(含列等待時間),機關為毫秒(1秒=1000毫秒)

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

%util 請求占CPU的百分比,此數越大,越代表裝置帶寬越飽和

報告生成時間                   average 各列項的平均值

注:系統瓶頸檢視推薦:

裝置:sar  –b    sar  –u      sar  –d

CPU: sar  –u    sar  –q

記憶體:sar  –B     sar –W      sar   -r

8  AIDE

1)安裝AIDE:yum install aide -y

2)配置檔案所在路徑:/etc/aide.conf

3)對AIDE的配置檔案進行檢測:aide -D

4)AIDE權限說明:AIDE的每個檢測權限都是由若幹的權限組成,其組成的權限有:

p :權限           i :i節點(索引節點)          n :連接配接數量 

u :使用者           g :使用者組                 s :大小

m :最後一次修改時間            a :最後一次通路時間

c :建立時間                     S :檢查增加的大小

l :連結名            b :塊計算             I :忽略改變的檔案

sha1 :sha1校驗      sha256:sha256校驗    sha512:sha512校驗

md5 :md5校驗      crc32 :crc32校驗      rmd160:rmd160校驗

tiger :tiger校驗      haval :haval校驗

注:是以AIDE的檢測權限為R :p+i+n+u+g+s+m+c+md5    L :p+i+n+u+g

5)根據aide.conf的配置初始化資料庫  #aide   -c   /etc/aide.conf   -i

6)将新的初始化的資料庫進行使用     #cd    /var/lib/aide

#cp   aide.db.new.gz   aide.db.gz

7)對系統進行檢測     #aide   --check 或 aide   –C

8)如果檔案修改,對AIDE資料庫更新  #aide   --update 或 aide   –u

轉載請注明出處,謝謝!

繼續閱讀