資料庫伺服器效能剖析(思路梳理)
阿新 • • 發佈:2018-12-10
最常見的三個效能相關問題;
- 如何確認伺服器是否達到了效能最佳的狀態。
- 某條語句為什麼執行的不夠快。
- 如何診斷被使用者描述成停頓、堆積、或者卡死的某些間歇性疑難故障。
效能常見指標
- 每秒查詢次數。
- CPU利用率。
- 可擴充套件性。
效能定義;完成某件任務所需要的時間度量,或者說,效能即響應時間。
效能的優化; 在一定的工作負載下儘可能的降低響應時間。
注意;CPU利用率並不是很好的度量效能的指標。單純的降低CPU利用率會導致資源的減少使用,資源是用來消耗並工作的,有時候消耗更多資源能夠帶來更快的查詢速度。
同樣,如果把優化只是當做提升每秒查詢量,也只是吞吐量的優化。只能當做是優化的副產品。
對查詢的優化可以讓伺服器每秒執行更多的查詢,因為每條查詢語句的時間更短了。
優化的目的是降低響應時間,那麼首先要明白為什麼伺服器查詢需要那麼多的時間,然後減少或者消除那些對查詢結果沒有必要的工作。(無法測量就無法優化)
很多人優化花很多時間去修改一些東西,而不去關注精確的測量。對症下藥才能更好地解決。
測量是一項很有挑戰的工作,分析結果同樣有挑戰性。測出時間花在哪裡,知道為什麼花在哪裡。
要有合適的測量範圍,兩種情況會導致不合適的測量;
- 在錯誤的時間啟動和停止測量。
- 測量的是聚合後的資訊,而不是目標活動本身。
完成一項任務的時間分為兩部分;執行時間,等待時間。
優化執行時間,最好方法是通過測量定位不同子任務花費的時間,優化掉一些子任務,降低子任務的執行頻率或者提升子任務的效率。
優化等待時間要複雜的多,牽扯到可能由於其他系統間接影響導致。任務間也可能由於爭奪磁碟或者CPU資源相互影響。
定位和優化子任務----效能剖析;
效能剖析是測量與分析時間花費在哪裡的主要方法;分兩步
測量任務花費的時間
對結果進行統計排序,重要的任務排在前面。
效能花費的時間主要通過獲取事務啟動時開啟到事務結束時間差 (時鐘)。