這個系列文檔主要是描述如何監控Linux操作系統的性能。檢查如何解釋Linux性能工具的輸出。在蒐集這些輸出以後,做出關於性能瓶頸的分析。不過不包括如何優化內核。
1. 優化簡介
2. CPU術語
3. CPU監控
4. 內核CPU線程調度
• CPU 消耗型
—— 一個CPU消耗型應用要求大量使用CPU。比如要求CPU做批處理或/和數學計算。web服務器,郵箱服務器,任何一種渲染型服務器通常都被認爲是CPU綁定的應用。
1.2 確認基準統計數據
系統使用率從管理員的角度來說是一個依情況而定的。想要明白系統是否有性能問題的唯一辦法就是要理解對這個系統的期望值。什麼樣的性能應該是在期望中的並且數據看起來應該是如何的?唯一的辦法就是創建一個基準。統計數據必須在系統處於性能可接受範圍時可用,這樣才能用來比較不可接受範圍的狀況。
在下面的例子中,一個系統性能的基準數據被拿來和一個超負荷的系統相比較:
alpha -> vmstat 1
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy wa id
1 0 138592 17932 126272 214244 0 0 1 18 109 19 2 1 1 96
0 0 138592 17932 126272 214244 0 0 0 0 105 46 0 1 0 99
0 0 138592 17932 126272 214244 0 0 0 0 198 62 40 14 0 45
0 0 138592 17932 126272 214244 0 0 0 0 117 49 0 0 0 100
0 0 138592 17924 126272 214244 0 0 0 176 220 938 3 4 13 80
0 0 138592 17924 126272 214244 0 0 0 0 358 1522 8 17 0 75
1 0 138592 17924 126272 214244 0 0 0 0 368 1447 4 24 0 72
0 0 138592 17924 126272 214244 0 0 0 0 352 1277 9 12 0 79
alpha -> vmstat 1
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy wa id
2 0 145940 17752 118600 215592 0 1 1 18 109 19 2 1 1 96
2 0 145940 15856 118604 215652 0 0 0 468 789 108 86 14 0 0
3 0 146208 13884 118600 214640 0 360 0 360 498 71 91 9 0 0
2 0 146388 13764 118600 213788 0 340 0 340 672 41 87 13 0 0
2 0 147092 13788 118600 212452 0 740 0 1324 620 61 92 8 0 0
2 0 147360 13848 118600 211580 0 720 0 720 690 41 96 4 0 0
2 0 147912 13744 118192 210592 0 720 0 720 605 44 95 5 0 0
2 0 148452 13900 118192 209260 0 372 0 372 639 45 81 19 0 0
2 0 149132 13692 117824 208412 0 372 0 372 457 47 90 10 0 0
只要看最後一列的數據(id——idle時間),我們可以看到在基準情況下,CPU79% ~100%的時間都是處於idle狀態。而在第二個輸出,我們可以看到系統是100%都在使用中而沒有idle。
參考文獻:Extreme Linux Performance Monitoring and Tuning