Linux性能監(jiān)視sar命令
sar是一個優(yōu)秀的一般性能監(jiān)視工具,它可以輸出Linux所完成的幾乎所有工作的數(shù)據(jù)。sar命令在sysetat rpm中提供。示例中使用sysstat版本5.0.5,這是穩(wěn)定的最新版本之一。關(guān)于版本和下載信息,請?jiān)L問sysstat主頁http://perso.wanadoo.fr/sebastien.godard/。
sar可以顯示CPU、運(yùn)行隊(duì)列、磁盤I/O、分頁(交換區(qū))、內(nèi)存、CPU中斷、網(wǎng)絡(luò)等性能數(shù)據(jù)。最重要的sar功能是創(chuàng)建數(shù)據(jù)文件。每一個Linux系統(tǒng)都應(yīng)該通過cron工作收集sar數(shù)據(jù)。該sar數(shù)據(jù)文件為系統(tǒng)管理員提供歷史性能信息。這個功能非常重要,它將sar和其他性能工具區(qū)分開。如果一個夜晚批處理工作正常運(yùn)行兩次,直到下一個早上才會發(fā)現(xiàn)這種情況(除非被叫醒)。我們需要具備研究12小時以前的性能數(shù)據(jù)的能力。sar數(shù)據(jù)收集器提供了這種能力。有許多報告語法,我們首先討論數(shù)據(jù)收集。
3.2.1 ;sar數(shù)據(jù)收集器sar數(shù)據(jù)收集通過/usr/lib/sa中的一個二進(jìn)制可執(zhí)行文件和兩個腳本來完成。sar數(shù)據(jù)收集器是一個位于/usr/lib/sa/sadc的二進(jìn)制可執(zhí)行文件。sadc的工作是寫入數(shù)據(jù)收集文件/var/1og/sa/。可以為sadc提供幾個選項(xiàng)。常見語法是:
間隔是取樣間的秒數(shù),iterations是要取得的樣本數(shù)量,file name定義輸出文件。簡單的sadc語法是/usr/lib/sa/sadc 360 5/tmp/sadc.out。這個命令在5分鐘間隔取得5個樣本并將它們保存在/tmp/sadc.out。我們應(yīng)該定期收集樣本,因此需要一個由cron運(yùn)行的腳本。應(yīng)該把樣本放在一個有意義的地方,如在前一節(jié)中使用top腳本時那樣。sysstat rpm提供/usr/lib/sa/sa1腳本來完成所有這些事情。
sa1(8)手冊頁比sa1腳本本身要長得多。/usr/lib/sa/sa1是一個非常簡單的腳本,使用語法sadc -F -L 1 1 /var/log/sa/sa##來運(yùn)行sadc,其中##是某月的日期。較老版本的sa1使用date+.%Y_%m_%d的輸出作為文件后綴。如果需要,可以使用-F選項(xiàng)使sadc強(qiáng)制創(chuàng)建輸出文件。-L在寫入輸出文件之前鎖定它,以防止兩個sadc進(jìn)程同時運(yùn)行時損壞該文件。較老版本的sadc沒有-L選項(xiàng),因此sa1腳本執(zhí)行手工鎖定。sa1腳本的選項(xiàng)只是樣本之間的間隔和取樣迭代的次量。cron文件(/etc/cron.d/sysstat)和sysstat一起提供,在各sysstat版本之間它有所不同。以下是5.0.5版本的sysstat的條目:
可見,在sysstat rpm安裝之后,sadc開始取得樣本。sysstat主頁是http://perso.wanadoo.fr/ sebastien.godard/2。文檔鏈接提供以下類似2006年1月14日的crontab方案:
Sebastien Godard的網(wǎng)站的crontab示例建議周一至周五從早晨8點(diǎn)到下午6點(diǎn)每10分鐘取一次樣本,其他時間每小時取得一個樣本(注意,crontab注釋為下午7點(diǎn),但實(shí)際上是18:00,即下午6點(diǎn))。如果/var中的磁盤空間足夠,可以每天都每小時的每10分鐘取樣一次。如果周末備份較慢,每小時一次sadc取樣可能幫助不大。
現(xiàn)在讓我們研究更流行的報告語法。
3.2.2; CPU統(tǒng)計(jì)數(shù)據(jù)sar -u輸出顯示CPU信息。-u選項(xiàng)是sar的默認(rèn)選項(xiàng)。該輸出以百分比顯示CPU的使用情況。表3-2解釋該輸出。
表3-2 ;;sar -u字段
字;段
說; ;;明
CPU
CPU編號
%user
在用戶模式中運(yùn)行進(jìn)程所花的時間
%nice
運(yùn)行正常進(jìn)程所花的時間
%system
在內(nèi)核模式(系統(tǒng))中運(yùn)行進(jìn)程所花的時間
%iowait
沒有進(jìn)程在該CPU上執(zhí)行時,處理器等待I/O完成的時間
%idle
沒有進(jìn)程在該CPU上執(zhí)行的時間
這些看起來應(yīng)該比較熟悉,它和top報告中的CPU信息內(nèi)容相同。以下顯示輸出格式:
其中的5 10導(dǎo)致sar以5秒鐘間隔取得10個樣本。任何sar報告的第一列都是時間戳。
我們本來可以研究使用-f選項(xiàng)通過sadc創(chuàng)建的文件。這個sar語法顯示sar -f/var/log/ sa/sa21的輸出:
在多CPU Linux系統(tǒng)中,sar命令也可以為每個CPU分解該信息,如以下sar -u -P ALL 5 5輸出所示:
3.2.3 ;磁盤I/O統(tǒng)計(jì)數(shù)據(jù)sar是一個研究磁盤I/O的優(yōu)秀工具。以下是sar磁盤I/O輸出的一個示例。
第一行-d顯示磁盤I/O信息,5;2選項(xiàng)是間隔和迭代,就像sar數(shù)據(jù)收集器那樣。表3-3列出了字段和說明。
表3-3;;;;sar -d字段
字;段
說;明
DEV
磁盤設(shè)備
tps
每秒傳輸數(shù)(或者每秒IO數(shù))
rd_sec/s
每秒512字節(jié)讀取數(shù)
wr_sec/s
每秒512字節(jié)寫入數(shù)
512只是一個測量單位,不表示所有磁盤I/O均使用512字節(jié)塊。DEV列是dev#-#格式的磁盤設(shè)備,其中第一個#是設(shè)備主編號,第二個#是次編號或者連續(xù)編號。對于大于2.5的內(nèi)核,sar使用次編號。例如,在sar -d輸出中看到的dev3-0和dev3-1。它們對應(yīng)于/dev/hda和/dev/hdal。請看/dev中的以下各項(xiàng):
/dev/hda有主編號3和次編號0。hda1有主編號3和次編號1。
3.2.4 ;網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)sar提供四種不同的語法選項(xiàng)來顯示網(wǎng)絡(luò)信息。-n選項(xiàng)使用四個不同的開關(guān):DEV、EDEV、SOCK和FULL。DEV顯示網(wǎng)絡(luò)接口信息,EDEV顯示關(guān)于網(wǎng)絡(luò)錯誤的統(tǒng)計(jì)數(shù)據(jù),SOCK顯示套接字信息,F(xiàn)ULL顯示所有三個開關(guān)。它們可以單獨(dú)或者一起使用。表3-4顯示通過-n DEV選項(xiàng)報告的字段。
表3-4 sar -n DEV字段
字;段
說明
IFACE
LAN接口
rxpck/s
每秒鐘接收的數(shù)據(jù)包
txpck/s
每秒鐘發(fā)送的數(shù)據(jù)包
rxbyt/s
每秒鐘接收的字節(jié)數(shù)
txbyt/s
每秒鐘發(fā)送的字節(jié)數(shù)
rxcmp/s
每秒鐘接收的壓縮數(shù)據(jù)包
txcmp/s
每秒鐘發(fā)送的壓縮數(shù)據(jù)包
rxmcst/s
每秒鐘接收的多播數(shù)據(jù)包
以下是使用-n DEV選項(xiàng)的sar輸出:
上一頁;;[1];[2];[3];[4];下一頁
關(guān)于網(wǎng)絡(luò)錯誤的信息可以用sar -n EDEV顯示。表3-5列出了顯示的字段。
表3-5 ;;;;sar -n EDEV字段
字;段
說;明
IFACE
LAN接口
rxerr/s
每秒鐘接收的壞數(shù)據(jù)包
txerr/s
每秒鐘發(fā)送的壞數(shù)據(jù)包
coll/s
每秒沖突數(shù)
rxdrop/s
因?yàn)榫彌_充滿,每秒鐘丟棄的已接收數(shù)據(jù)包數(shù)
txdrop/s
因?yàn)榫彌_充滿,每秒鐘丟棄的已發(fā)送數(shù)據(jù)包數(shù)
txcarr/s
發(fā)送數(shù)據(jù)包時,每秒載波錯誤數(shù)
rxfram/s
每秒接收數(shù)據(jù)包的幀對齊錯誤數(shù)
rxfifo/s
接收的數(shù)據(jù)包每秒FIFO過速的錯誤數(shù)
txfifo/s
發(fā)送的數(shù)據(jù)包每秒FIFO過速的錯誤數(shù)
SOCK參數(shù)顯示IPCS套接字信息。表3-6列出顯示的字段及其意義。
表3-6 ;;;;sar -n SOCK字段
字;段
說;明
totsck
使用的套接字總數(shù)量
tcpsck
使用的TCP套接字?jǐn)?shù)量
udpsck
使用的UDP套接字?jǐn)?shù)量
rawsck
使用的raw套接字?jǐn)?shù)量
ip-frag
使用的IP段數(shù)量
sar可以產(chǎn)生許多其他報告。我們有必要仔細(xì)閱讀sar(1)手冊頁,查看是否有自己需要的其他報告。;
3.2.2; CPU統(tǒng)計(jì)數(shù)據(jù)sar -u輸出顯示CPU信息。-u選項(xiàng)是sar的默認(rèn)選項(xiàng)。該輸出以百分比顯示CPU的使用情況。表3-2解釋該輸出。
表3-2 ;;sar -u字段
字;段
說; ;;明
CPU
CPU編號
%user
在用戶模式中運(yùn)行進(jìn)程所花的時間
%nice
運(yùn)行正常進(jìn)程所花的時間
%system
在內(nèi)核模式(系統(tǒng))中運(yùn)行進(jìn)程所花的時間
%iowait
沒有進(jìn)程在該CPU上執(zhí)行時,處理器等待I/O完成的時間
%idle
沒有進(jìn)程在該CPU上執(zhí)行的時間
這些看起來應(yīng)該比較熟悉,它和top報告中的CPU信息內(nèi)容相同。以下顯示輸出格式:
其中的5 10導(dǎo)致sar以5秒鐘間隔取得10個樣本。任何sar報告的第一列都是時間戳。
我們本來可以研究使用-f選項(xiàng)通過sadc創(chuàng)建的文件。這個sar語法顯示sar -f/var/log/ sa/sa21的輸出:
在多CPU Linux系統(tǒng)中,sar命令也可以為每個CPU分解該信息,如以下sar -u -P ALL 5 5輸出所示:
相關(guān)文章:
1. 如何在linux系統(tǒng)中安裝jdk1.8?2. Linux操作系統(tǒng)中的FTP客戶端3. Linux中Nginx的防盜鏈和優(yōu)化的實(shí)現(xiàn)代碼4. VMware安裝RedHat Linux時出現(xiàn)"該光盤無法被掛載"的錯誤怎么辦5. Linux 5.10.10正式發(fā)布:修復(fù) NULL 指針不正確等6. xmanager連接linux桌面方法7. Xshell怎么遠(yuǎn)程桌面連接Linux系統(tǒng)?8. Linux系統(tǒng)如何查看和結(jié)束進(jìn)程?9. Linux(CentOS)如何安裝DNS服務(wù)器?10. 后XP時代誰主沉浮 Linux還是WIN 7?
