Linux實戰-9:監控Linux服務器CPU、mem、流量等內容

在進行服務器壓力測試時候,不免需要監控服務器CPU、mem等項的增長情況,提供一個腳本可以監控這些內容,執行命令:

./ProcMonitor_SaveDir_Pid_Second.sh 結果保存目錄 進程ID 監測多少秒

例如:監控ID爲27164的進程600秒,並將結果保存在腳本所在目錄下的160m目錄

./ProcMonitor_SaveDir_Pid_Second.sh 160m 27164 600
  • ProcMonitor_SaveDir_Pid_Second.sh內容如下:
#!/bin/bash
#結果保存目錄
mkdir $1
echo "SaveDir=$1"
#進程ID
echo "pid=$2"
#監測多少秒
echo "TotalSecond=$3"
#while true
#do
#******************************************************************************************************
#pidstat主要用於監控全部或指定進程佔用系統資源的情況,
#如CPU,內存、設備IO、任務切換、線程等。pidstat首次運行時顯示自系統啓動開始的各項統計信息,
#之後運行pidstat將顯示自上次運行該命令以後的統計信息。
#用戶可以通過指定統計的次數和時間來獲得所需的統計信息。
#*****************************************************************************************************



#******************************************************************************************************
#使用-r選項,pidstat將顯示各活動進程的內存使用統計:
#minflt/s: 每秒次缺頁錯誤次數(minor page faults),次缺頁錯誤次數意即虛擬內存地址映射成物理內存地址產生的page fault次數
#majflt/s: 每秒主缺頁錯誤次數(major page faults),當虛擬內存地址映射成物理內存地址時,相應的page在swap中,
#這樣的page fault爲major page fault,一般在內存使用緊張時產生
#VSZ:      該進程使用的虛擬內存(以kB爲單位)
#RSS:      該進程使用的物理內存(以kB爲單位)
#%MEM:     該進程使用內存的百分比
#Command:  拉起進程對應的命令
#******************************************************************************************************
pidstat -r -p $2   1 $3            >>$1/mem_$2.txt                 &
#------------------------------------------------------------------------------------------------------

#******************************************************************************************************
#%usr: 進程在用戶態運行所佔cpu時間比率
#%system: 進程在內核態運行所佔cpu時間比率
#%CPU: 進程運行所佔cpu時間比率
#CPU: 指示進程在哪個核運行
#Command: 拉起進程對應的命令
#******************************************************************************************************
pidstat -u -p $2   1 $3            >>$1/cpu_$2.txt                 &
#------------------------------------------------------------------------------------------------------

#******************************************************************************************************
#使用-d選項,我們可以查看進程IO的統計信息:
#kB_rd/s - 任務從硬盤上的讀取速度(kb)
#kB_wr/s - 任務向硬盤中的寫入速度(kb)
#kB_ccwr/s - 任務寫入磁盤被取消的速率(kb)
#******************************************************************************************************
pidstat -d -p $2   1 $3            >>$1/IO_$2.txt                  &
#------------------------------------------------------------------------------------------------------

#******************************************************************************************************
#UID 
#TGID:------主線程ID
#TID:-------線程ID
#%guest
#%usr: -----進程在用戶態運行所佔cpu時間比率
#%system: --進程在內核態運行所佔cpu時間比率
#%CPU: -----進程運行所佔cpu時間比率
#CPU: ------指示進程在哪個核運行
#Command: --拉起進程對應的命令                       

#******************************************************************************************************
pidstat -t -p $2                   >>$1/Threads_$2.txt             &
#------------------------------------------------------------------------------------------------------


#******************************************************************************************************
#IFACE:LAN接口
#rxpck/s:每秒鐘接收的數據包
#txpck/s:每秒鐘發送的數據包
#rxbyt/s:每秒鐘接收的字節數
#txbyt/s:每秒鐘發送的字節數
#rxcmp/s:每秒鐘接收的壓縮數據包
#txcmp/s:每秒鐘發送的壓縮數據包
#rxmcst/s:每秒鐘接收的多播數據包                    
#******************************************************************************************************
sar -n DEV 1 $3					   >>$1/liuliang.txt			   &

top -b -n $3 -p $2 |grep $2        >>$1/top_$2.txt                 &

sleep $3
#done
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章