淺談linux性能調優之十三:性能分析相關概念
淺談linux性能調優之十二:紅帽優化策略Tuned
http://www.2cto.com/os/201307/229281.html
關於處理器的性能指標。
? CPU使用率【CPU Utilization】
這可能是最直接的指標了,它表示每個處理器的整體使用率。在IBM System x架構中,如果在持續一段時間裡CPU使用率超過80%,就可能預示著CPU出現了瓶頸。
? 用戶時間【User Time】
表示用戶進程所花費的CPU百分比,包括Nice時間。在用戶時間值很高的情況下,表明系統正在執行實際的工作。
? 系統時間【System Time】
表示內核操作所花費的CPU百分比,包括硬中斷【IRQ】和軟中斷[SoftIRQ]。系統時間值持續很高表明網絡或驅動器堆棧可能存在瓶頸。通常系統只花費很少時間在內核時間上。
? 等待【Waiting】
花費在等待I/O操作所需的CPU時間總和,與阻塞【Blocked】值相似,系統不應該花費過多的時間等待I/O操作;否則你應該檢查一下I/O子系統各方面性能。
? 空閒時間【Idle time】
表示CPU空閒的百分比。
? Nice時間【Nice time】
表示花費在執行re-nicing(改變進程的執行順序和優先級)進程的CPU百分比。
? 平均負載【Load average】
平均負載不是百分比,它是下面數值之和的平均值:
– 隊列中等待執行的進程數
– 等待不可中斷任務執行完成的進程數。
也就是TASK_RUNNING和TASK_UNINTERRUPTIBLE之和的平均值。如果請求CPU時間的進程發生阻塞(),平均負載將會上升。相反如果每個進程都可以立即執行不會錯過CPU周期,平均負載就會降低。
? 可運行進程【Runable processes】
這個值表示准備執行的進程。這個值在持續一段時間按內應該不會超過物理處理器數量的10倍,否則CPU可能存在瓶頸。
? 堵塞【Blocked】
在等待I/O操作完成前,進程是不能繼續執行。進程堵塞可能意味著I/O存在瓶頸。
? 上下文交換【Context switch】
系統中進程之間進行交換的數量。上下文交換次數過多與大量的中斷有關,這可能暗示著驅動器或應用程序存在問題。通常是不需要上下文交換的,因為每次只需要刷新CPU緩存,但有些上下文交換是必要的。
? 中斷【Interrupts】
中斷數量中包括硬中斷和軟中斷。硬中斷會對系統性能產生非常不利的影響。高中斷值表明軟件存在瓶頸,可能是內核或者驅動。請記住中斷值中也包括CPU始終所導致的中斷。內存的性能指標。
? 空閒內存【Free memory】
與其它操作系統相比,不必過分在意空閒內存值。正如1.2.2“虛擬內存管理”所述,Linux內核將大量未使用的內存分配作為文件系統緩存使用,所以在已用內存扣除用於緩沖和緩存的數量得到實際空閒內存。
? 交換空間使用【Swap usage】
這個值表示已使用的交換空間數量。正如1.2.2“虛擬內存管理”所述,交換空間的使用只能告訴你Linux在管理內存上是多麼有效。要想確定內存是否存 在瓶頸,Swap In/Out的數量才以為著用來。如果Swap In/Out長時間保持在每秒鐘超過200到300頁以上可能表示內存存在瓶頸。
? 緩沖與緩存【Buffer and cache】
被用來作為文件系統和塊設備的緩存
? Slabs
表示內核所使用的內存。注意內核的頁是不能被交換到硬盤上的。
? 活動與非活動內存【Active versus inactive memory】
提供關於活動內存的相關信息。非活動內存會作為候選被kswapd交換到硬盤。參見“頁幀回收”網絡的性能指標。
? 已收到和已傳送的封包【Packets received and sent】
這個指標能告訴你特定網卡已收到和已發送的封包數量
? 已收到和已傳送的字節【Bytes received and sent】
這個值表示特定網卡已收到和已發送的字節數量。
? 每秒鐘沖突數【Collisions per second】
這個值提供發生在指定網卡的網絡沖突的數量。持續出現沖突值表示在網絡架構中存在瓶頸而不是服務器。在大多數正確配置網絡中,沖突時非常罕見的,除非網絡架構是由hub組成的。
? 丟棄的封包【Packets dropped】
被內核丟棄的封包數,原因可能是防火牆配置問題或缺乏網絡緩沖
? Overruns
Overruns表示超出網絡接口緩沖的次數。這個指標可以與丟棄的封包數量配合來確定瓶頸是出自網絡緩沖還是網絡隊列長度。
? 錯誤【Errors】
被標示為失敗的幀的數量。這經常是由於網絡不匹配或部分網線損壞引起的。對於銅纜千兆網部分網線損壞會產生嚴重的性能問題。塊設備的性能指標。
? IO等待【Iowait】
CPU在等待I/O操作發生所花費的時間。如果這個值持續很高,很可能表示I/O存在瓶頸。
? 隊列平均長度【Average queue length】
I/O請求的數量。通常硬盤隊列值在2到3為最佳;過高可能表示硬盤I/O存在瓶頸。
? 平均等待時間【Average wait】
I/O請求服務所花費的平均時間。等待時間包括實際I/O操作的時間和在I/O隊列中等待的時間。單位為毫秒ms。
? 每秒鐘傳輸的數量【Transfers per second】
表示每秒鐘執行了多少次I/O操作(包括讀取和寫入)。與每秒鐘傳輸字節數【kBytes per second】結合可以幫助確定系統平均傳輸大小。平均傳輸大小通常要與硬盤子系統的條帶大小一致。
? 每秒鐘讀寫塊的數量【Blocks read/write per second】
這個指標表示每秒鐘讀寫塊的數量,在2.6內核中塊的大小為1024字節,早期的內核可以有不同的塊大小,從512字節到4KB。
? 每秒鐘讀寫字節的數量【Kilobytes per second read/write】
表示塊設備讀寫的實際數據的數量,單位為KB。