- 論壇徽章:
- 1
|
在系統(tǒng)運行效率慢之前和運行效率慢的時候分別執(zhí)行sar操作,
對比二者的結(jié)果可以比較快的判斷出問題所在
第1步:
# sar 1 5
09:35:13 %usr %sys %wio %idle (-u)
09:35:14 17 0 0 83
09:35:15 5 0 0 95
09:35:16 5 0 0 95
09:35:17 5 0 0 95
09:35:18 5 1 0 94
Average 7 0 0 92
對比系統(tǒng)變慢之前和慢之間分別執(zhí)行上述命令的結(jié)果可以初步定位系統(tǒng)主要的瓶頸
如果%usr的平均值高,表示系統(tǒng)等待用戶程序的比例高
(比如排序,數(shù)據(jù)處理,數(shù)據(jù)計算等)
罪魁禍?zhǔn)祝焊叻迤诓槐匾某绦蜻\行,CPU速度慢或數(shù)量不足,
效率低下的用戶程序或守護(hù)處理進(jìn)程以及錯誤的進(jìn)程優(yōu)先級nice
如果%sys高,表示系統(tǒng)等待設(shè)備驅(qū)動系統(tǒng)調(diào)用的比例高
罪魁禍?zhǔn)祝盒实拖碌脑O(shè)備驅(qū)動程序,硬件故障導(dǎo)致的假中斷,
CPU速度慢或數(shù)量不足
如果%usr和%sys都高,表示系統(tǒng)等待用戶或內(nèi)核產(chǎn)生的系統(tǒng)調(diào)用比例高
罪魁禍?zhǔn)祝篊PU速度慢或數(shù)量不足
如果%wio高,表示系統(tǒng)等待硬盤io存取數(shù)據(jù)的比例高
罪魁禍?zhǔn)祝河脖P緩存不足(NBUF/NHBUF配置不足),硬盤慢,
內(nèi)存不足,運行程序有內(nèi)存泄漏或占用過多內(nèi)存
第2步:
一 如果%usr高:
1)檢查占用CPU的進(jìn)程
# ps -el | more
F S UID PID PPID C PRI NI ADDR SZ TTY TIME CMD
71 S 0 0 0 0 95 20 fb117000 0 ? 00:00:01 sched
20 S 0 1 0 0 66 20 fb117158 148 ? 00:00:00 init
...
20 S 0 347 1 0 76 24 fb119db0 312 ? 00:00:00 snmpd
20 S 17 349 1 1 66 20 fb119f08 156 ? 01:05:53 deliver
20 S 0 413 410 0 75 20 fb11a060 128 ? 00:00:00 lockd
檢查C和TIME列的值,如果哪行TIME(單位是分:秒:百分之一秒)異常的高,并且C是>0的數(shù)字,
那么這個CMD顯示的進(jìn)程程序就是太耗費資源的元兇,
上面所是的例子deliver表示累計占了1分鐘CPU,還算正常,假如是1000:05:53那么它就是問題所在了
也可用who命令檢查,比如
# w
4:41pm up 5:04, 3 users, load average: 0.00 0.00 0.00
User tty login@ idle JCPU PCPU what
root tty01 11:51am 21:38 bash
root tty03 4:31pm 9 -sh
root ttyp1 1:55pm w
# who -u | sort -k 6 -r
root tty03 Jul 6 16:31 0:09 1774
root ttyp1 Jul 6 13:55 0:01 3902
root tty01 Jul 6 11:51 . 1773
2) 檢查系統(tǒng)調(diào)用的情況
# sar -c 1 5
SCO_SV tuvok 3.2v5.0.5 i80386 06/21/2001
09:55:08 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s (-c)
09:55:09 1216 67 12 0.99 0.99 178441 3988
09:55:10 147 31 6 0.00 0.00 168723 8421
09:55:11 74 27 4 0.00 0.00 163644 3342
09:55:12 245 37 6 0.00 0.00 171821 8928
09:55:13 151 29 4 0.00 0.00 163770 3468
Average 367 38 6 0.20 0.20 169280 5629
對比系統(tǒng)變慢之前和慢之間分別執(zhí)行上述命令的結(jié)果,
如果系統(tǒng)變慢之后scall/s列的值增大很多,表示
.程序突然被頻繁使用
.系統(tǒng)運行的程序太多了,可用ps命令確認(rèn).
如果系統(tǒng)變慢之后fork/s,exec/s或sread/s,swrit/s異常的高,
檢查fork過多,讀寫操作頻繁的程序,優(yōu)化代碼降低資源占用
二 如果%sys高
如果是多CPU系統(tǒng)且系統(tǒng)有SMP支持,執(zhí)行下列命令查看是否有設(shè)備在發(fā)送成千上萬的中斷
OpenServer5執(zhí)行: #sar -j 1 5
UnixWare7/OpenUnix8執(zhí)行: #sar -P ALL 1 5
檢查訪問磁帶機(jī),第3方smart boards以及非硬盤設(shè)備的設(shè)備的程序
三 如果%usr和%sys都高
1) 檢查系統(tǒng)隊列
# sar -q 1 5
SCO_SV lunasco 3.2v5.0.4 Pentium 06/21/2001
10:46:29 runq-sz %runocc swpq-sz %swpocc (-q)
10:46:30 3.0 100
10:46:31
10:46:32 1.0 100
10:46:33 1.0 100
10:46:34 1.0 100
Average 1.5 100
其中time平均值應(yīng)該
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/31/showart_509059.html |
|