1. 程式人生 > >Linux 效能分析相關概念(來自IBM紅皮書)

Linux 效能分析相關概念(來自IBM紅皮書)

關於處理器的效能指標。 

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。