您好,登錄后才能下訂單哦!
[root@localhost ~]# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 418416 7392 36796 0 0 37 2 34 22 0 2 97 1 0 [root@localhost ~]# vmstat 1 //每一秒顯示一次 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 418416 7400 36796 0 0 36 2 34 21 0 2 97 1 0 0 0 0 418408 7400 36796 0 0 0 0 14 9 0 0 100 0 0
r run 可以理解為1秒鐘之內(nèi)有幾個(gè)進(jìn)程占用CPU
b 等待資源(磁盤或內(nèi)存)的進(jìn)程數(shù),b越大磁盤壓力越大
swpd 有多少塊被交換了(當(dāng)內(nèi)存不夠的時(shí)候),當(dāng)數(shù)值不大且固定可以不用管
free 有多少剩余的內(nèi)存,單位是K
buffer 緩沖,從內(nèi)存讀出來放入磁盤中
cache 緩存,從磁盤讀出來放入內(nèi)存當(dāng)中
si 寫入內(nèi)存
so 從內(nèi)存讀出來
bi 讀磁盤,寫進(jìn)內(nèi)存
bo 從內(nèi)存讀出來,寫入磁盤
in
cs 上下文切換次數(shù)
us用戶態(tài)的進(jìn)程
sy系統(tǒng)態(tài)的進(jìn)程
id CPU處于空閑的百分比
wa 輸入輸出等待所占CPU的包粉筆
st 被偷走cpu的百分比
iostat通過觀察設(shè)備的活躍時(shí)間和他們平均傳輸率之間的關(guān)系來監(jiān)視系統(tǒng)的輸入/輸出設(shè)備負(fù)載。iostat生成的報(bào)告可以用于修改系統(tǒng)配置從而更好在物理硬盤間平衡輸入/輸出的報(bào)告。
yum install sysstat
要運(yùn)行它,只需在控制臺下輸入iostat
%user : 顯示了在執(zhí)行用戶(應(yīng)用)層時(shí)的CPU利用率
%nice : 顯示了在以nice優(yōu)先級運(yùn)行用戶層的CPU利用率
%system : 顯示了在執(zhí)行系統(tǒng)(內(nèi)核)層時(shí)的CPU利用率
%iowait : 顯示了CPU在I/O請求掛起時(shí)空閑時(shí)間的百分比
%steal : 顯示了當(dāng)hypervisor正服務(wù)于另外一個(gè)虛擬處理器時(shí)無意識地等待虛擬CPU所占有的時(shí)間百分比。
%idle : 顯示了CPU在I/O沒有掛起請求時(shí)空閑時(shí)間的百分比
Device : 列出的/dev 目錄下的設(shè)備/分區(qū)名稱
tps : 顯示每秒傳輸給設(shè)備的數(shù)量。更高的tps意味著處理器更忙。
Blk_read/s : 顯示了每秒從設(shè)備上讀取的塊的數(shù)量(KB,MB)
Blk_wrtn/s : 顯示了每秒寫入設(shè)備上塊的數(shù)量(KB,MB)
Blk_read : 顯示所有已讀取的塊
Blk_wrtn : 顯示所有已寫入的塊
默認(rèn)上,iostat以B為單位衡量I/O系統(tǒng)。為了更便于閱讀,我們可以iostat將報(bào)告轉(zhuǎn)換成以KB或者M(jìn)B為單位。只需要加入-k參數(shù)來創(chuàng)建以KB為單位,-m參數(shù)來創(chuàng)建以MB為單位。
要擴(kuò)展報(bào)告,我們可以在iostat后面跟上-x選項(xiàng)
rrqm/s: 每秒這個(gè)設(shè)備相關(guān)的讀取請求有多少被Merge(當(dāng)系統(tǒng)調(diào)用需要讀取數(shù)據(jù)的時(shí)候,VFS將請求發(fā)到各個(gè)FS,如果FS發(fā)現(xiàn)不同的讀取請求讀取的是相同Block的數(shù)據(jù),F(xiàn)S會將這個(gè)請求合并Merge)。
wrqm/s: 每秒這個(gè)設(shè)備相關(guān)的寫入請求有多少被Merge了。
r/s: 每秒讀取設(shè)備的量。
w/s:每秒寫設(shè)備的量。
rsec/s: 每秒讀取的扇區(qū)數(shù)。
wsec/s: 每秒寫入的扇區(qū)數(shù)。
avgqu-sz: 平均每次設(shè)備I/O操作的數(shù)據(jù)大小 (扇區(qū))。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:平均I/O隊(duì)列長度.即 delta(aveq)/s/1000 (因?yàn)閍veq的單位為毫秒).
await:平均每次設(shè)備I/O操作的等待時(shí)間 (毫秒).即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次設(shè)備I/O操作的服務(wù)時(shí)間 (毫秒).即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的時(shí)間用于 I/O 操作,或者說一秒中有多少時(shí)間 I/O 隊(duì)列是非空的.即 delta(use)/s/1000 (因?yàn)閡se的單位為毫秒)
如果 %util 接近 100%,說明產(chǎn)生的I/O請求太多,I/O系統(tǒng)已經(jīng)滿負(fù)荷,該磁盤可能存在瓶頸.
idle小于70% IO壓力就較大了,一般讀取速度有較多的wait.同時(shí)可以結(jié)合vmstat 查看查看b參數(shù)(等待資源的進(jìn)程數(shù))和wa參數(shù)(IO等待所占用的CPU時(shí)間的百分比,高過30%時(shí)IO壓力高),另外 await 的參數(shù)也要多和 svctm 來參考.差的過高就一定有 IO 的問題.
avgqu-sz 也是個(gè)做 IO 調(diào)優(yōu)時(shí)需要注意的地方,這個(gè)就是直接每次操作的數(shù)據(jù)的大小,如果次數(shù)多,但數(shù)據(jù)拿的小的話,其實(shí) IO 也會很小.如果數(shù)據(jù)拿的大,才IO 的數(shù)據(jù)會高.也可以通過 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s.也就是講,讀定速度是這個(gè)來決定的.
和vmstat一樣,作為一個(gè)統(tǒng)計(jì)工具,最好帶延遲參數(shù)來使用它。通過延遲參數(shù),我們可以看到趨勢。這里有一些帶延時(shí)運(yùn)行iostat的示例。
[root@SERVER-Test ~]# iostat -d sda1 sda2 2 3 Linux 2.6.32-358.18.1.el6.x86_64 (SERVER-Test) 2014年04月08日 _x86_64_ (4 CPU) Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda1 0.00 0.39 0.01 3078694 46236 sda2 18.73 94.97 992.08 742920998 7760567792 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda1 0.00 0.00 0.00 0 0 sda2 3.50 0.00 60.00 0 120 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda1 0.00 0.00 0.00 0 0 sda2 4.50 4.00 116.00 8 232
iostat使用這些文件來創(chuàng)建報(bào)告。
/proc/stat 包含了系統(tǒng)統(tǒng)計(jì)
/proc/partitions 包含磁盤統(tǒng)計(jì)
/proc/diskstats 包含磁盤統(tǒng)計(jì)
/sys 包含塊設(shè)備統(tǒng)計(jì)
vmstat用于監(jiān)視內(nèi)存使用,iostat用于監(jiān)視CPU使用率和I/O系統(tǒng),這樣我們就有了完整的工具來監(jiān)視你機(jī)器中三個(gè)重要的組件。在控制臺下輸入man iostat就可進(jìn)入iostat手冊界面。
[root@SERVER-Test ~]# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 5 861712 280288 496656 19368480 0 0 12 124 1 0 3 1 95 2 0 [root@SERVER-Test ~]#
輸出信息簡介
r: 運(yùn)行的和等待運(yùn)行的進(jìn)程數(shù),這個(gè)值也可以判斷是否需要增加CPU(長期大于1)
b: 處于不可中斷狀態(tài)的進(jìn)程數(shù),常見的情況是由IO引起的
w: 被交換出去的可運(yùn)行的進(jìn)程數(shù)。此數(shù)由 linux 計(jì)算得出,但 linux 并不耗盡交換空間
Memory
swpd: 虛擬內(nèi)存使用情況(默認(rèn)以KB為單位),如果 swpd 的值不為0,或者還比較大,比如超過100M了,但是 si, so 的值長期為 0,這種情況我們可以不用擔(dān)心,不會影響系統(tǒng)性能。
free: 空閑的內(nèi)存,單位KB
buff: 被用來做為緩存的內(nèi)存數(shù),單位:KB
cache: 作為page cache的內(nèi)存, 文件系統(tǒng)的cache,如果 cache 的值大的時(shí)候,說明cache住的文件數(shù)多,如果頻繁訪問到的文件都能被cache住,那么磁盤的讀IO bi 會非常小。
Swap
si: 從磁盤交換到內(nèi)存的交換頁數(shù)量,單位:KB/秒
so: 從內(nèi)存交換到磁盤的交換頁數(shù)量,單位:KB/秒
內(nèi)存夠用的時(shí)候,這2個(gè)值都是0,如果這2個(gè)值長期大于0時(shí),系統(tǒng)性能會受到影響。磁盤IO和CPU資源都會被消耗。(常有人看到空閑內(nèi)存(free)很少或接近于0時(shí),就認(rèn)為內(nèi)存不夠用了,實(shí)際上不能光看這一點(diǎn)的,還要結(jié)合si,so,如果free很少,但是si,so也很少(大多時(shí)候是0),那么不用擔(dān)心,系統(tǒng)性能這時(shí)不會受到影響的。)
IO
bi: 發(fā)送到塊設(shè)備的塊數(shù),單位:塊/秒
隨機(jī)磁盤讀寫的時(shí)候,這2個(gè)值越大(如超出1M),能看到CPU在IO等待的值也會越大bo: 從塊設(shè)備接收到的塊數(shù),單位:塊/秒
System
in: 每秒的中斷數(shù),包括時(shí)鐘中斷
cs: 每秒的環(huán)境(上下文)切換次數(shù)
上面這2個(gè)值越大,會看到由內(nèi)核消耗的CPU時(shí)間會越多.
CPU 按 CPU 的總使用百分比來顯示
us:用戶進(jìn)程消耗的CPU時(shí)間百分比,值比較高時(shí),說明用戶進(jìn)程消耗的CPU時(shí)間多,但是如果長期超過50% 的使用,那么我們就該考慮優(yōu)化程序算法或者進(jìn)行加速了
sy: CPU 系統(tǒng)使用時(shí)間,內(nèi)核進(jìn)程消耗的CPU時(shí)間百分比,值高時(shí),說明系統(tǒng)內(nèi)核消耗的CPU資源多,這并不是良性的表現(xiàn),我們應(yīng)該檢查原因。
id: 閑置時(shí)間
wa: IO等待消耗的CPU時(shí)間百分比,值高時(shí),說明IO等待比較嚴(yán)重,這可能是由于磁盤大量作隨機(jī)訪問造成,也有可能是磁盤的帶寬出現(xiàn)瓶頸(塊操作)。
Linux操作系統(tǒng)下如何正確查看Raid信息
有些情況下系統(tǒng)不是自己裝的,raid也不是自己配置的,遠(yuǎn)程登錄系統(tǒng)后可能就不知道系統(tǒng)是否有做raid,raid級別?因此稍微總結(jié)一下Linux下查看軟、硬raid信息的方法。
軟件raid:只能通過Linux系統(tǒng)本身來查看
cat /proc/mdstat
可以看到raid級別,狀態(tài)等信息。
硬件raid: 最佳的辦法是通過已安裝的raid廠商的管理工具來查看,有cmdline,也有圖形界面。如Adaptec公司的硬件卡就可以通過下面的命令進(jìn)行查看:
# /usr/dpt/raidutil -L all
可以看到非常詳細(xì)的信息。
當(dāng)然更多情況是沒有安裝相應(yīng)的管理工具,只能依靠Linux本身的話一般我知道的是兩種方式:
# dmesg |grep -i raid
# cat /proc/scsi/scsi
顯示的信息差不多,raid的廠商,型號,級別,但無法查看各塊硬盤的信息。
另外經(jīng)過實(shí)際測試,Dell的服務(wù)器可以通過命令來顯示,而HP、IBM等的服務(wù)器通過上面的命令是顯示不出的。只能夠通過裝硬件廠商的管理工具來查看。
使用MegaCli等工具查看Raid磁盤陣列狀態(tài)
命令使用:
MegaCli -LDInfo -Lall -aALL 查raid級別
MegaCli -AdpAllInfo -aALL 查raid卡信息
MegaCli -PDList -aALL 查看硬盤信息
MegaCli -AdpBbuCmd -aAll 查看電池信息
MegaCli -FwTermLog -Dsply -aALL 查看raid卡日志
MegaCli常用參數(shù)介紹
MegaCli -adpCount 【顯示適配器個(gè)數(shù)】
MegaCli -AdpGetTime –aALL 【顯示適配器時(shí)間】
MegaCli -AdpAllInfo -aAll 【顯示所有適配器信息】
MegaCli -LDInfo -LALL -aAll 【顯示所有邏輯磁盤組信息】
MegaCli -PDList -aAll 【顯示所有的物理信息】
MegaCli -AdpBbuCmd -GetBbuStatus -aALL |grep ‘Charger Status’ 【查看充電狀態(tài)】
MegaCli -AdpBbuCmd -GetBbuStatus -aALL【顯示BBU狀態(tài)信息】
MegaCli -AdpBbuCmd -GetBbuCapacityInfo -aALL【顯示BBU容量信息】
MegaCli -AdpBbuCmd -GetBbuDesignInfo -aALL 【顯示BBU設(shè)計(jì)參數(shù)】
MegaCli -AdpBbuCmd -GetBbuProperties -aALL 【顯示當(dāng)前BBU屬性】
MegaCli -cfgdsply -aALL 【顯示Raid卡型號,Raid設(shè)置,Disk相關(guān)信息】
atop命令使用
Atop 是一個(gè)基于 ASCII 的全屏的性能監(jiān)控工具,可用來監(jiān)控進(jìn)程的活動時(shí)間,高亮顯示出一些過載的進(jìn)程,還包括其他的一些系統(tǒng)指標(biāo)例如:CPU、內(nèi)存、交換分區(qū)、磁盤和網(wǎng)絡(luò)等信息。
安裝
wget http://www.atoptool.nl/download/atop-2.0.2.tar.gz tar zxvf atop-2.0.2.tar.gz cd atop-2.0.2 make && make install |
在安裝atop之后,系統(tǒng)會在/var/log/atop目錄下記錄atop日志文件,我們在命令行下敲入”atop"命令也可看到系統(tǒng)當(dāng)前的運(yùn)行情況.
ATOP列:該列顯示了主機(jī)名、信息采樣日期和時(shí)間點(diǎn)
PRC列:該列顯示進(jìn)程整體運(yùn)行情況
sys、usr字段分別指示進(jìn)程在內(nèi)核態(tài)和用戶態(tài)的運(yùn)行時(shí)間
#proc字段指示進(jìn)程總數(shù)
#zombie字段指示僵死進(jìn)程的數(shù)量
#exit字段指示atop采樣周期期間退出的進(jìn)程數(shù)量
CPU列:該列顯示CPU整體(即多核CPU作為一個(gè)整體CPU資源)的使用情況,CPU可被用于執(zhí)行進(jìn)程、處理中斷,也可處于空閑狀態(tài)(空閑狀態(tài)分兩種,一種是活動進(jìn)程等待磁盤IO導(dǎo)致CPU空閑,另一種是完全空閑)
sys、usr顯示進(jìn)程在內(nèi)核態(tài)、用戶態(tài)所占CPU的時(shí)間比例
irq字段指示CPU被用于處理中斷的時(shí)間比例
idle字段指示CPU處在完全空閑狀態(tài)的時(shí)間比例
wait字段指示CPU處在“進(jìn)程等待磁盤IO導(dǎo)致CPU空閑”狀態(tài)的時(shí)間比例
CPU列各個(gè)字段指示值相加結(jié)果為N00%,其中N為cpu核數(shù)。
cpu列:該列顯示某一核cpu的使用情況,各字段含義可參照CPU列,各字段值相加結(jié)果為100%
CPL列:該列顯示CPU負(fù)載情況
avg1、avg5和avg15字段:過去1分鐘、5分鐘和15分鐘內(nèi)運(yùn)行隊(duì)列中的平均進(jìn)程數(shù)量
csw字段指示上下文交換次數(shù)
intr字段指示中斷發(fā)生次數(shù)
MEM列:該列指示內(nèi)存的使用情況
tot字段指示物理內(nèi)存總量
free字段指示空閑內(nèi)存的大小
cache字段指示用于頁緩存的內(nèi)存大小
buff字段指示用于文件緩存的內(nèi)存大小
slab字段指示系統(tǒng)內(nèi)核占用的內(nèi)存大小
SWP列:該列指示交換空間的使用情況
tot字段指示交換區(qū)總量
free字段指示空閑交換空間大小
PAG列:該列指示虛擬內(nèi)存分頁情況
swin、swout字段:換入和換出內(nèi)存頁數(shù)
DSK列:該列指示磁盤使用情況,每一個(gè)磁盤設(shè)備對應(yīng)一列,如果有sdb設(shè)備,那么增多一列DSK信息
sda字段:磁盤設(shè)備標(biāo)識
busy字段:磁盤忙時(shí)比例
read、write字段:讀、寫請求數(shù)量
NET列:多列NET展示了網(wǎng)絡(luò)狀況,包括傳輸層(TCP和UDP)、IP層以及各活動的網(wǎng)口信息
XXXi? 字段指示各層或活動網(wǎng)口收包數(shù)目
XXXo 字段指示各層或活動網(wǎng)口發(fā)包數(shù)目
1)默認(rèn)視圖
進(jìn)入atop信息界面,我們看到的就是進(jìn)程信息的默認(rèn)視圖(上圖下半部分),按g鍵可以從其他視圖跳到默認(rèn)視圖。
2)內(nèi)存視圖
內(nèi)存視圖展示了進(jìn)程使用內(nèi)存情況,按m鍵可進(jìn)入內(nèi)存視圖。
3)命令視圖(Command line)
按c鍵我們可以進(jìn)入命令視圖,該視圖展示了與每個(gè)進(jìn)程相對應(yīng)的命令。
4)d ——磁盤相關(guān)輸出 n ——網(wǎng)絡(luò)相關(guān)輸出
5)atop日志
每個(gè)時(shí)間點(diǎn)采樣頁面組合起來就形成了一個(gè)atop日志文件,我們可以使用"atop -r XXX"命令對日志文件進(jìn)行查看。
#cd /var/log/atop/ (進(jìn)入atop日志所在路徑) # ll total 21832 -rw-r--r-- 1 root root 5111271 2013-06-30 00:00 atop_20140329 -rw-r--r-- 1 root root 5161400 2013-07-01 00:00 atop_20140330 # atop -r atop_20140329 (分析歷史日志文件)
對于atop日志文件的保存方式,我們可以這樣:
每天保存一個(gè)atop日志文件,該日志文件記錄當(dāng)天信息
日志文件以"atop_YYYYMMDD"的方式命名
設(shè)定日志失效期限,自動刪除一段時(shí)間前的日志文件
其實(shí)atop開發(fā)者已經(jīng)提供了以上日志保存方式,相應(yīng)的atop.daily腳本可以在源碼目錄下找到。在atop.daily腳本中,我們可以通過修改INTERVAL變量改變atop信息采樣周期(默認(rèn)為10分鐘);通過修改以下命令中的數(shù)值改變?nèi)罩颈4嫣鞌?shù)(默認(rèn)為3天):
(sleep 3; find$LOGPATH -name'atop_*'-mtime+3?-exec rm {} \;)&
?
最后,我們修改cron文件,每天凌晨執(zhí)行atop.daily腳本:
0*** root /etc/atop /atop.daily
可以參考:http://blog.jiunile.com/iftop%E3%80%81iotop%E3%80%81htop%E3%80%81atop%E4%BB%8B%E7%BB%8D.html
Linux iostat命令輸出簡要說明 http://www.linuxidc.com/Linux/2013-06/86703.htm
Linux iostat命令 http://www.linuxidc.com/Linux/2013-03/80163.htm
Linux iostat 命令詳解 http://www.linuxidc.com/Linux/2012-03/55736.htm
實(shí)時(shí)系統(tǒng)監(jiān)控工具mpstat 使用詳解 http://www.linuxidc.com/Linux/2012-03/56676.htm
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。