linux 中的sar命令 與gnuplot繪圖

一.簡單介紹

1.安裝軟件
#yum install sysstat  

[root@node1 sa]# rpm -ql sysstat
/etc/cron.d/sysstat
/etc/rc.d/init.d/sysstat
/etc/sysconfig/sysstat
/etc/sysconfig/sysstat.ioconf
/usr/bin/cifsiostat
/usr/bin/iostat
...


2.安裝sysstat包後,默認創建一個/etc/cron.d/sysstat文件,其默認內容爲
[root@node1 sa]# cat /etc/cron.d/sysstat 
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

在 cron 任務 /etc/cron.d/sysstat 中每隔10分鐘執行一次 /usr/lib/sa/sa1
在 cron 任務 /etc/cron.d/sysstat 中每天 23:53執行一次 /usr/lib/sa/sa2



3.主要命令
在/usr/lib64/sa目錄下有三個文件:
sa1  sa2  sadc

sa1:是調用sadc(二進制文件),將數據收集到二進制日誌文件的一個Shell腳本。sa1命令還確保每天使用不同的文件。每隔十分鐘運行一次該命令,最好不要改這個值,這是對一般系統折中的值。二進制日誌文件存放在/var/log/sa/目錄下,命名爲sa${DATE}。

sa2:是將當日二進制日誌文件中所有的數據轉儲到文本文件(sar)的另一個Shell腳本,然後它將清除七天之前的所有日誌文件。參數-A指定了從二進制文件中提取哪些數據轉儲到文本文件中。轉儲的文件存放在/var/log/sa/目錄下,命名爲sar${DATE}。


文件 /var/log/sa/saDD 爲二進制文件,不能使用more、less 等文本工具查看,必須用 sar 或 sadf 命令查看
文件 /var/log/sa/sarDD 爲文本文件,可以使用more,cat 查看



二.查看cpu信息

1.進程隊列長度和平均負載狀態監控:
  
#每5s採樣一次,連續採樣10次,監控進程隊列長度和平均負載狀態
[root@node1 sa]# sar -q 5 10
Linux 2.6.32-642.el6.x86_64 (node1)     07/12/2017      _x86_64_        (4 CPU)

08:44:50 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
08:44:55 PM         0       182      0.00      0.01      0.04
08:45:00 PM         0       182      0.00      0.01      0.04
08:45:05 PM         0       182      0.00      0.01      0.04
08:45:10 PM         0       182      0.00      0.01      0.04
08:45:15 PM         0       182      0.00      0.01      0.04
08:45:20 PM         0       182      0.00      0.01      0.04
....

runq-sz: 運行隊列的長度(等待運行的進程數)
plist-sz:進程列表中進程(processes)和線程(threads)的數量
ldavg-1: 最近1分鐘的系統平均負載(Systemload average)
ldavg-5: 過去5分鐘的系統平均負載
ldavg-15:過去15分鐘的系統平均負載


2.CPU資源監控
[root@node1 sa]# sar -u 1 10
Linux 2.6.32-642.el6.x86_64 (node1)     07/12/2017      _x86_64_        (4 CPU)

08:47:45 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
08:47:46 PM     all      0.00      0.00      0.99      0.00      0.00     99.01
08:47:47 PM     all      0.00      0.00      1.25      0.00      0.00     98.75
08:47:48 PM     all      0.00      0.00      1.74      0.00      0.00     98.26
08:47:49 PM     all      0.25      0.00      1.49      0.00      0.00     98.26
08:47:50 PM     all      0.00      0.00      1.25      0.00      0.00     98.75
08:47:51 PM     all      0.00      0.00      1.50      0.00      0.00     98.50
...


輸出項說明:
CPU:all     #表示統計信息爲所有 CPU 的平均值。
%user       #顯示在用戶級別(application)運行使用 CPU 總時間的百分比。
%nice       #顯示在用戶級別,用於nice操作,所佔用 CPU 總時間的百分比。
%system     #在覈心級別(kernel)運行所使用 CPU 總時間的百分比。
%iowait     #顯示用於等待I/O操作佔用 CPU 總時間的百分比。
%steal      #管理程序(hypervisor)爲另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。
%idle       #顯示CPU空閒時間佔用CPU總時間的百分比。

若 %iowait 的值過高,表示硬盤存在I/O瓶頸
若 %idle 的值高但系統響應慢時,有可能是 CPU 等待分配內存,此時應加大內存容量
若 %idle 的值持續低於 10,則系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是CPU。


三.查看磁盤I/O和傳送速率的統計信息

[root@node1 sa]# sar -b

輸出項說明:
tps            #每秒鐘物理設備的 I/O 傳輸總量
rtps           #每秒鐘從物理設備讀入的數據總量
wtps           #每秒鐘向物理設備寫入的數據總量
bread/s        #每秒鐘從物理設備讀入的數據量,單位爲 塊/s
bwrtn/s        #每秒鐘向物理設備寫入的數據量,單位爲 塊/s


四.查看內存信息

sar -r

kbmemfree         #空餘內存
kbmemused         #使用內存
%memused          #使用內存/總內存
kbbuffers  buffer
kbcached  cache
kbcommit           #保證正常工作的內存,保證不會內存溢出
%commitkbcommit/(RAM+SWAP)



五.利用gnuplot工具對sa文件進行畫圖

1.安裝軟件gnuplot

yum install gnuplot

2.對sa文件進行處理(取我們想得到的數據)
LANG=C  sar -f sa02 -q | grep -v "Average:" | awk 'NR>3 {print $0}' > /tmp/111

3.編輯腳本(重點)
vim a.plt 

set xdata time                    #定義x軸數據格式
set timefmt '%H:%M:%S'            #定義x軸單位格式
set xlabel 'Time'                 #定義顯示標籤
set format x '%H:%M:%S'            
set terminal png truecolor  size 1600,900
set output "/var/www/html/1.png"
set ylabel 'Load Avg'
set yrange [0:]
plot '/tmp/111' using 1:4 title '1min' with lines,'/tmp/111' using 1:5 title    '5min' with lines,'/tmp/111' using 1:6 title '15min' with lines


4.執行腳本:
gnuplot a.plt

5.查看結果:
(1)ls /var/www/html/1.png  #在此目錄下生成圖片
(2)在瀏覽器中打開          #驗證圖片

六.使用 ksar 工具分析系統性能

yum install java

下載包
 wget     
 
 
 export DISPLAY=192.168.193.1:0 
 
  sh run.sh


wKioL1lmIKqDAsw_AAA8zxuo1Co034.png-wh_50


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

Read/s: 每秒的讀請求數

Writer/s: 每秒的寫請求數

Block bread/s: 每秒讀磁盤的數據塊數

Block wrtn/s: 每秒寫磁盤的數據塊數



https://www.ibm.com/developerworks/cn/linux/1303_caojh_ksar/


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