網(wǎng)管實戰(zhàn)Linux服務(wù)器整體性能監(jiān)控攻略
Linux服務(wù)器進行性能監(jiān)控有幾種方法,每種方法都各有其優(yōu)缺點。
使用SNMP等標(biāo)準(zhǔn)工具
標(biāo)準(zhǔn)及非標(biāo)準(zhǔn)工具能執(zhí)行一個或多個收集、合并及傳輸階段,如rstatd或SNMP工具,然而標(biāo)準(zhǔn)的rstat后臺程序提供的信息是有限的,速度慢而且效率低。
內(nèi)核模塊
幾個系統(tǒng)監(jiān)控工程利用內(nèi)核模塊來存取監(jiān)控數(shù)據(jù)。一般情況下,這是很有效的收集系統(tǒng)數(shù)據(jù)的方法。然而這種方法存在的問題是,當(dāng)主內(nèi)核源內(nèi)有其它改變時,必須保持代碼一致性。一個內(nèi)核模塊可能與用戶想使用的其它內(nèi)核模塊相沖突。此外,在使用監(jiān)控系統(tǒng)之前,用戶必須獲得或申請模塊。
/proc虛擬文件系統(tǒng)
/proc虛擬文件系統(tǒng)是一個較快的、高效率執(zhí)行系統(tǒng)監(jiān)控的方法。使用/proc的主要缺點是必須保持代碼分析與/proc 文件格式改變的同步。事實表明,Linux內(nèi)核的改變比/proc 文件格式的改變要更頻繁,所以,用/proc虛擬文件系統(tǒng)比用內(nèi)核模塊存在的問題要少。本文介紹的方法即基于/proc虛擬文件系統(tǒng)。
一、 /proc文件系統(tǒng)特點
Linux 系統(tǒng)向管理員提供了非常好的方法,使他們可以在系統(tǒng)運行時更改內(nèi)核,而不需要重新引導(dǎo)內(nèi)核系統(tǒng)。這是通過 /proc 虛擬文件系統(tǒng)實現(xiàn)的。/proc 文件虛擬系統(tǒng)是一種內(nèi)核和內(nèi)核模塊用來向進程 (process) 發(fā)送信息的機制 (所以叫做 /proc)。這個偽文件系統(tǒng)讓你可以和內(nèi)核內(nèi)部數(shù)據(jù)結(jié)構(gòu)進行交互,獲取 有關(guān)進程的有用信息,在運行中 (on the fly) 改變設(shè)置 (通過改變內(nèi)核參數(shù))。 與其他文件系統(tǒng)不同,/proc 存在于內(nèi)存之中而不是硬盤上。不用重新啟動而去看 CMOS ,就可以知道系統(tǒng)信息。這就是 /proc 的妙處之一。/proc 目錄里主要文件內(nèi)容,見表-1:
表-1
小提示: 每個Linux系統(tǒng)根據(jù)軟硬件不同/proc 虛擬文件系統(tǒng)的內(nèi)容也有些差異。/proc 虛擬文件系統(tǒng)有三個很重要的目錄:net,scsi和sys。Sys目錄是可寫的,可以通過它來訪問或修改內(nèi)核的參數(shù),而net和scsi則依賴于內(nèi)核配置。
二、 系統(tǒng)負(fù)載監(jiān)測
1 使用uptime命令
使用upt
ime命令可以查看系統(tǒng)負(fù)載,系統(tǒng)平均負(fù)載被定義為在特定時間間隔內(nèi)運行隊列中的平均進程數(shù)目。如果一個進程滿足以下條件則其就會位于運行隊列中:沒有在等待I/O操作的結(jié)果、它沒有主動進入等待狀態(tài)(也就是沒有被調(diào)用、沒有被停止。
# uptime
9:51pm up 3 days, 4:43, 4 users, load average:6.02, 5.90, 3.94
上面命令顯示示最近1 分鐘內(nèi)系統(tǒng)的平均負(fù)載是6.02,在最近5分鐘內(nèi)系統(tǒng)的平均負(fù)載是5.90,在最近的15 分鐘內(nèi)系統(tǒng)的平均負(fù)載是3.94。一共四個用戶。對于上面的例子來說,由于筆者系統(tǒng)使用是雙CPU,那幺其每個CPU的當(dāng)前任務(wù)數(shù)為:6.02/2=3.01。另外可以使用cron命令進行定時監(jiān)測系統(tǒng)負(fù)載:
# crontab -e
此時打開一個vi編輯器:輸入以下內(nèi)容:
#30 * * * * * uptime
存盤退出,這樣每隔30分鐘就記載其平均負(fù)載,這樣累計一天,我們就可以得到最近一天的平均負(fù)載。
2 使用cat /proc/loadavg命令
#cat /proc/loadavg
0.40 0.79 0.70 2/245 4101
Cat /proc/loadavg提供以下數(shù)據(jù):
1秒鐘平均負(fù)載;5秒鐘平均負(fù)載;15秒鐘平均負(fù)載;總作業(yè)數(shù);正在運行的作業(yè)總數(shù)。
3 使用cat /proc/stat命令
# cat /proc/stat
cpu 16015 1353 28840 101677 3602 664 4323
cpu0 16015 1353 28840 101677 3602 664 4323
intr 1605646 1565008 52 0 4 4 0 6 0 1 8664 296 16675 1418 0 0 13518
ctxt 617320
btime 1178342189
processes 4236
procs_running 2
procs_blocked 0
cat /proc/stat命令是包含內(nèi)核統(tǒng)計量,提供以下數(shù)據(jù):
CPU 以及CPU0、每行的每個參數(shù)意思(以第一行為例)為:
user (432661) 從系統(tǒng)啟動開始累計到當(dāng)前時刻,用戶態(tài)的CPU時間(單位:jiffies) ,不包含 nice值為負(fù)進程。1 jiffies=0.01
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解