1. 程式人生 > >《Linux 性能及調優指南》3.1 確認瓶頸

《Linux 性能及調優指南》3.1 確認瓶頸

使用 全部 ibm 容量 由於 隊列 系統性能 是什麽 測試

翻譯:飛哥 ( http://hi.baidu.com/imlidapeng )

版權所有,尊重他人勞動成果,轉載時請註明作者和原始出處及本聲明。

原文名稱:《Linux Performance and Tuning Guidelines》

原文地址:http://www.redbooks.ibm.com/abstracts/redp4285.html

-------------------------------------------------------------------------------------------

下面的步驟可用來作為快速調優的策略:

1. 了解你的系統。
2. 備份系統。
3. 監控和分析系統性能。
4. 縮小瓶頸範圍,找出原因。
5. 修復導致瓶頸的原因,每次只做一個變更。
6. 回到第3步,直到系統性能達到滿意。
?

提示:你應該將每一個步驟記錄在文件中,特別是你針對性能所做的變更和及其影響。
?

3.1.1 搜集信息

大多數情況下,你所能得到的第一手信息就是“服務器出現了問題”。
?所以利用一些探索性問題來弄清和記錄下問題是非常重要的。
?
?這裏列出一些問題用來幫助你更好的了解系統。

? 你能給我關於所涉及服務器的完整信息嗎?

- 型號
- 使用年限
- 配置
- 外圍設備
- 操作系統版本和更新等級
?

? 你能告訴我究竟出現了什麽問題?

- 都有哪些癥狀?
- 描述一下錯誤信息。
?

對於有些人回答這個問題有些困難,但用戶提供的任何額外信息都有可能幫助你找到問題。
?例如,用戶可能說“當我拷貝文件到服務器時速度真的很慢。”。這就暗示網絡有問題或硬盤子系統有問題。

? 誰受到這個問題的影響?

一個人、某些人還是整個組織受這個問題的影響?這可以幫助你判斷問題是否出現在某段特定的網絡中還是與應用相關等等。
?如果只有一個用戶受此問題影響,很可能是用戶的PC出了問題(或者是他們想象出來的)。

The perception clients have of the server is usually a key factor.
?從這個觀點來說,性能問題並不一定與涉及服務器直接有關:
?位於服務器和客戶端的網絡極易成為導致問題的原因,這包括網絡設備和其他提供服務的服務器,例如域控制器。


?? 問題是否可以重現?

所有可以重現的問題都能被解決。如果你在系統方面經驗豐富,你應該能找出問題根源並采取相應的措施。

問題的重現可以讓你更好的了解和明白此問題。記錄重現問題的相關步驟是十分必要的:

- 重現問題需要哪些步驟?

知道這些步驟可以幫助你在相同條件下不同的機器中再現相同的問題。如果可以,你將有機會使用測試機來代替崩潰的生產服務器。


?- 是一個間歇性問題嗎?

如果問題間歇性發生,第一件要做的是就是搜集信息並找到可以重現問題的規律,目標就是構建一個情境讓問題可以隨時發生。


?- 問題在每天的特定時間或每周的特定某天發生嗎?

這可能幫助你查明問題是由什麽引起的。問題可能發生在大家上午上班或下午上班時,想辦法改變現有作息時間(這可能減少問題發生的機會或發生的更加頻繁);以便讓問題可以重現。


?- 問題很少見嗎?

如果問題不可以重現,你可能得出結果在特殊情況下問題才會發生並將其歸類為已解決。在現實生活中,此問題還是極有可能再次發生的。

在排除難以重現的問題時,有效的措施就是:重啟或將機器的驅動程序和補丁升級到最新。


?? 問題是什麽時候開始的?是漸漸的還是突然發生的?

如果性能問題是漸漸出現的,這很像是一個容量規劃問題;
?如果它是突然出現的,很可能是由於服務器或外圍設備的變更引起的。


?? 服務器是否有做過變更(小的或大的)或客戶端使用服務器的方法有改變嗎?

- 客戶是否改變過服務器或外圍設備而導致了問題的發生?有網絡變更的所有記錄嗎?


?需求會隨著業務的改變而改變,影響對服務器和網絡系統的需求。

? 還涉及了其它的服務器或硬件嗎?

? 有日誌可以用嗎?

? 問題的優先級是什麽?什麽時候問題必須解決?

- 必須在幾分鐘內解決還是允許在幾天內解決?你可能有充分時間來解決問題;或已啟動應急方案。

- 問題有多大?

- 相關的損失有哪些?


?3.1.2 分析服務器性能

重要提示:在執行任何故障排除動作前,備份所有的數據和配置信息,防止其部分或全部丟失。

此時,你應開始監控服務器。最簡單的方法就是在需要分析的服務器上運行監控工具。(參看第二章“監控和基準工具”)。

在運行高峰時(例如,上午9點到下午5點)記錄服務器的性能日誌;
?取決於有提供哪些服務和有哪些人在使用這些服務。

??在記錄日誌時如果可以應該包含下列字段:

處理器 【Processor】
系統 【System】
服務器工作隊列【Server work queues】
內存【Memory】
分頁文件【Page file】
物理硬盤【Physical disk】
重定向器【redirector】
網絡接口【Network interface】
?

在你開始前,要牢記井然有序的進行性能調優是非常重要的。
?你可以使用我們推薦的流程為你的服務器進行調優,
?
?流程如下:

1.清楚影響服務器性能的因素。

2.測量出當前的性能作為基線,用於與後來的測量數據比較來識別出系統的瓶頸。

3.使用監控工具來識別性能瓶頸。按照下節介紹,你可以縮小瓶頸的範圍到子系統級。

4.針對導致瓶頸的元件執行相應調整,提升服務器性能以滿足需要。

註釋:當服務器其它元件都有足夠的能力來維持性能在一個較高的級別時,通過升級存在瓶頸的元件可以獲得最好的效果。

5.對性能進行新的測量,對比調優前後的性能差異。
?

當嘗試處理性能問題時,請記住下列事項:

? 應用程序應該使用適當的優化級別進行編譯,這樣可以少走彎路。

? 在你做任何升級和修改前執行測量,以便於確定變更是否有效果。(換句話說就是執行基線測量)

? 檢查項目不應只有新增加的硬件,還要包括配置有更改的現有設備。

《Linux 性能及調優指南》3.1 確認瓶頸