1. 程式人生 > >資料庫伺服器效能剖析(思路梳理)

資料庫伺服器效能剖析(思路梳理)

最常見的三個效能相關問題;

  1. 如何確認伺服器是否達到了效能最佳的狀態。
  2. 某條語句為什麼執行的不夠快。
  3. 如何診斷被使用者描述成停頓、堆積、或者卡死的某些間歇性疑難故障。

效能常見指標

  • 每秒查詢次數。
  • CPU利用率。
  • 可擴充套件性。

效能定義;完成某件任務所需要的時間度量,或者說,效能即響應時間。

效能的優化; 在一定的工作負載下儘可能的降低響應時間。

注意;CPU利用率並不是很好的度量效能的指標。單純的降低CPU利用率會導致資源的減少使用,資源是用來消耗並工作的,有時候消耗更多資源能夠帶來更快的查詢速度。

同樣,如果把優化只是當做提升每秒查詢量,也只是吞吐量的優化。只能當做是優化的副產品。

對查詢的優化可以讓伺服器每秒執行更多的查詢,因為每條查詢語句的時間更短了。

 

優化的目的是降低響應時間,那麼首先要明白為什麼伺服器查詢需要那麼多的時間,然後減少或者消除那些對查詢結果沒有必要的工作。(無法測量就無法優化)

 

很多人優化花很多時間去修改一些東西,而不去關注精確的測量。對症下藥才能更好地解決。

測量是一項很有挑戰的工作,分析結果同樣有挑戰性。測出時間花在哪裡,知道為什麼花在哪裡。

要有合適的測量範圍,兩種情況會導致不合適的測量;

  1. 在錯誤的時間啟動和停止測量。
  2. 測量的是聚合後的資訊,而不是目標活動本身。

完成一項任務的時間分為兩部分;執行時間,等待時間。

優化執行時間,最好方法是通過測量定位不同子任務花費的時間,優化掉一些子任務,降低子任務的執行頻率或者提升子任務的效率。

優化等待時間要複雜的多,牽扯到可能由於其他系統間接影響導致。任務間也可能由於爭奪磁碟或者CPU資源相互影響。

定位和優化子任務----效能剖析;

 

效能剖析是測量與分析時間花費在哪裡的主要方法;分兩步

測量任務花費的時間

對結果進行統計排序,重要的任務排在前面。

效能花費的時間主要通過獲取事務啟動時開啟到事務結束時間差 (時鐘)。