針對測試報告進行針對性優化

2021-10-11 00:26:43 字數 1645 閱讀 3326

在壓力測試發現問題以後,就要進行有針對性的優化。對於不同的系統,這個過程的策略並不是確定的,但是大概可以劃分為以下幾個步驟: 

1.定位效能瓶頸,找出系統存在的問題 

不同系統的特點不同,在效能瓶頸上也有不同的表現,一般來說,下面的幾個方面通常存在比較大的優化空間:

(1)磁碟i/o及檔案操作

由於磁碟i/o讀寫的速度要比記憶體慢很多,程式在執行過程中,如果需要等待磁碟i/o完成,那麼低效的i/o操作會拖累整個系統。

測試磁碟i/o讀寫的速度的命名: time dd if=/dev/zero bs=1024 count=5000000 of=/tmp/test.file

單位: m/s

(2)網路操作---查詢網路頻寬速度--網路i/o

對網路資料進行讀寫的情況與磁碟i/o類似。由於網路環境的不確定性,尤其是對網際網路上資料的讀寫,網路操作的速度可能比本地磁碟i/o更慢。

1、安裝iftop

centos系統:yum -y install iftop

debian系統執行:apt-get install iftop

2、執行iftop,即可檢視網速

單位: m/s

(3)cpu

對計算資源要求較高的應用,由於其長時間、不間斷地大量占用cpu資源,那麼對cpu的爭奪將導致效能問題。如科學計算、3d渲染等對cpu需求旺盛的應用。

(4)高併發下的上下文切換及鎖競爭等

高併發程式如果沒有做好優化,存在大量的鎖競爭,激烈得鎖競爭將會明顯增加執行緒上下文切換的開銷,對效能造成極大的影響。

(5)資料庫

大部分應用程式都離不開資料庫,而海量資料的讀寫操作可能是相當費時的。而應用程式可能需要等待資料庫操作完成或者返回請求的結果集,那麼緩慢的同步操作將成為系統瓶頸。

2.確定調整目標,提出解決方案

找到系統的效能問題以後,需要作出對應的解決方案。

典型的影響效能的問題,比如:

(1)系統對高併發的場景響應不足,如資料庫連線池過低,伺服器連線數超過上限,資料庫鎖控制考慮不足等

(2)記憶體洩露,如在長時間執行下,記憶體沒有正常釋放,發生宕機等

(3)資料庫優化不足,業務日益增長,關聯表眾多,sql不夠優化等

定位到上述問題,接下來就是提出合理的調整目標,

比如伺服器資源有限,可以通過配置更多的機器,服務上雲等進行優化;

如果對高併發支援不好,就可以在**層面優化,提高併發支援;

資料庫效能問題,如慢查詢等問題,就可以進行 sql語句優化等。

3.實施解決方案,進行迭代開發

上一步的分析給出了乙個初步的效能優化方案,接下來就是針對方案中提到的內容進行針對性的改進。

這個過程可以應用敏捷的思想進行迭代,在開發完成後,為了對比優化結果,可以對調優後的系統進行小範圍測試。

4.進行基準測試並分析調優結果

資料說明一切,效能優化的結果不能簡單的通過 「感覺系統變快了」來衡量,最好是通過對比優化前後的測試結果,用圖表的方式直觀的把優化結果展示出來。基準測試是指通過設計科學的測試工具和方式方法,實現對一類測試物件的某項效能指標進行定量的和可對比的測試。對比測試結果,結合容量評估等工作,可以讓系統發揮最大的效用。

乙個階段的優化工作完成以後,最好是總結反思一下,比如本次優化是否達到了目標?系統的整體效能是否得到了改善?使用者體驗是否得到了提公升?以及如何在接下來的開發工作中做的更好。

CDH針對性系統引數優化

表示當髒葉所佔記憶體數量超過該值時,核心flusher執行緒開始回寫髒頁,與dirty background ratio衝突,只能設定乙個 echo 220000000 proc sys vm dirty background bytes 當髒頁所佔記憶體數量達到該值時,執行磁碟寫操作的進場開始回寫...

針對性的mysql 查詢統計

需求如下 human m 表角色資訊表 human m.id human m.name task m 表角色任務表 關聯human m表id task m.id task m.compleatetask human m 和task m表是一對多的關係,即 乙個角色對應多調任務表 資料 其中b表com...

關於檢測有針對性的

日誌記錄事件和執行安全資訊事件管理系統都很關鍵,而同樣重要的就是對終端使用者進行適當的培訓。從最近針對hbgary公司的 來看,沒有任何公司能夠倖免於資料洩漏的,哪怕是知名安全公司。關於有針對性 有趣的事實就是,很少有公司將 細節公諸於眾,即使公開 細節,也只是側重漏洞和防禦的問題,很少有人將重點放...