目錄Blog:博客園 個人
- 記錄
- 以腳本代替手動輸入
- 選擇低開銷的工具
- 同時使用多個工具
- 確定指標和基線
- 追蹤近似問題
- 查看問題是否早已解決
- 分離問題
- 一次只改變一件事
- 始終在優化后重新測量
記錄
在調查性能問題時,你可以做的最重要的事情大概就是記錄下看到的每一個輸出、執行的每一條命令,以及研究的每一個資訊,結構清晰的記錄能讓你只查看記錄就可以檢驗關于性能問題原因的猜想,而不是重新運行測驗,這能節約大量時間,寫下來并且創建性能記錄,
每一步操作、每個輸出結果,可以直接截圖或者復制保存在檔案,便于后期對比分析,
以腳本代替手動輸入
使用腳本自動執行,可以節省時間,并有助于避免因不當工具和測驗呼叫造成的誤導性資訊,
舉個例子,你想在特定作業負載下或某段時間內監控系統,但是在測驗結束時,你可能不在現場,這種情況下,腳本就很好用了,在測驗完成時,可以自動收集、命名、保存全部生成的性能資料,并將它們自動放到“Results”目錄中,有了這些基礎之后,你就能按照不同的優化和調整重新運行測驗,并且不用擔心資料是否已經保存好,你反而可以集中精力找出問題的原因,而不是去管理測驗結果,
選擇低開銷的工具
使用工具觀察性能變化的同時,也會占用系統的資源,所以盡量選擇低開銷的工具來降低對系統的影響,
有些性能工具能夠給出高度精確的系統資訊,但其檢索資訊的開銷也很高,高開銷工具對系統行為帶來的變化大于低開銷工具,如果你只需要了解系統的粗略資訊,那么使用低開銷的工具是更好的選擇,即使它們不夠準確,
同時使用多個工具
雖然在找出性能問題原因的時候,如果只需要用一個工具那將是非常方便的,但這種情況相當少見,實際上,你使用的每一種工具都會為問題的原因提供線索,因此,你必須同時使用多個工具來真正搞清楚發生了什么,比如,一種性能工具會告訴你系統存在大量的磁盤I/O,而另一種工具則告訴你系統使用了大量的交換,如果只以第一個工具的結論制定解決方案,你可能會簡單地選擇更快的磁盤驅動器(然后發現性能問題僅僅改善了一點點),而將兩種工具的結果放在一起,你就會判斷出:大量的磁盤I/O是由大量使用的交換造成的,在這種情況下,你可能會買更多的主存以減少交換(這樣就不會再有大量的磁盤I/O),
確定指標和基線
明確性能峰值有助于你設定合理的性能期望值,并能給你一個性能目標,這樣你就知道何時應該停止優化,你可能總是沒有目標地時不時對系統做一點調整,這會浪費大量的時間,只為得到一些額外的性能,即使你可能并不真的需要它們,
要想知道什么時候結束優化,你必須為系統自行確立或是使用已發布的指標,指標是一種客觀的度量,用于指示系統的執行情況,例如,如果你要優化一個Web服務器,你就可以選擇“每秒服務的Web請求數”,如果你沒有一個客觀的途徑來度量性能,那么在調整系統的時候,你幾乎無法確定是否取得了進展,
在調整和優化之前,運行應用程式并記錄其性能,這就是基線值,它是性能調查的起點,
追蹤近似問題
通過初始的粗略嘗試,你能對問題形成大致的看法,這個簡單切口的目的就是收集足夠的資訊傳遞給程式的其他用戶和開發者,以便他們提出意見和建議,這里非常重要的一點是要有良好的書面記錄來解釋你認為問題是怎樣的,以及什么樣的測驗使你得出了這個結論,
查看問題是否早已解決
通過搜索引擎(谷歌、百度或國內常見的技術博客平臺,比如博客園、CSDN等)查找相似的錯誤資訊/問題,
Web搜索常常會揭示很多與應用程式以及你正在查找的具體錯誤情況相關的資訊,它們還可以指向其他用戶所嘗試的系統優化,還可能提示哪些有作用、哪些沒有作用,成功的搜索可以產生好幾頁能夠直接用于你的性能問題的資訊,
分離問題
如果可能的話,刪去任何運行于被調查系統的多余的程式或應用,運行許多不同應用程式的系統,其負載較重,會影響性能工具收集資訊的準確性,并最終將你引導到錯誤的方向,
一次只改變一件事
這點非常重要,要真正確定問題出在哪兒,一次只能有一個變化,這可能會很花時間,并讓你運行多個不同的測驗,但它的確是發現你是否解決了問題的唯一途徑,
始終在優化后重新測量
如果你稍稍調整了系統,那么在調整后對所有的事情重新進行測量是很重要的,當你開始修改系統配置時,所有之前生成的性能資訊可能不再有效,通常,在你解決一個性能問題時,別的問題會隨之而來,新問題可能與老問題有著極大的不同,因此,你真的需要重新運行性能工具來確保正在調查的問題沒有出錯,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/242162.html
標籤:Linux
