性能分析及調優原理(web 端、移動端)

性能分析及調優原理(web 端、移動端)

性能測試的目的是評估當前系統性能指標,分析定位解決性能瓶頸,預防規避性能風險。性能分析是爲了確定導致性能瓶頸的原因,而調優就是用來解決性能瓶頸。通過某些手段來讓系統的性能得到提升是性能調優的主要目的。

   【指標達成法】     

將測試結果與用戶需求進行比較,如果達到用戶需要則測試通過。

     系統滿足10萬註冊用戶(其中活躍用戶數爲1萬)訪問

     系統處理能力:20個註冊每秒,45個併發瀏覽每秒。30個登錄操作每秒。

     服務器資源利用率在滿負載的情況下。忙時峯值CPU負載不超過75%,內存佔用不超過80%

  例如:需要對一個參加100米跑的選手進行技術指導,並不在乎他是否能夠拿到冠軍,而是重點強調能否提升自己的 比賽成績,那麼就需要進行系統的訓練和指導,如規範的起跑動作、強化肌肉及協調性等,最終實現運動成績的提高。

      1)應用程序診斷

       應用程序的診斷是性能測試的最初目的。通過模擬多用戶操作形成負載,檢驗應用程序是否能滿足用戶性需求。如果不能滿足,則定位應用瓶頸,並尋找解決該瓶頸的方案,確保繫系統在修正後能滿足用戶需求。對於一個項目來說,一般都以應用診斷爲主。

       2)系統調優

        在性能調優中最基本的目的是爲了滿足用戶,而進一步的要求是超越自己,這個時候需要做的是讓系統能夠比以前更加優秀地運行,通過生成負載,對測試結果進行分析,並且準備大量的軟硬件環境進行迭代測試,找出影響性能的要素,最終提升系統的性能。一般產品都會採用系統調優的方式來逐步完善系統性能。

 

      ##常見的性能瓶頸有如下一些情況###

1)硬件上的性能瓶頸

一般指的是CPURAM方面的問題,分爲服務器硬件瓶頸、網絡瓶頸、服務器操作系統瓶頸(參數配置)、中間件瓶頸(參數配置、數據庫、Web服務器)、應用瓶頸(SQL語句、數據庫設計、業務邏輯、算法等)  例如:確定了在數據庫服務器上需要6CPU12G 內存。但是正測試時,發現CPU的持續利用率超過95%,這是可以認爲在硬件時上出現了性能瓶頸。

 2)應用軟件上出現的性能瓶頸

一般指的是應用服務器、Web服務器等應用軟件,還包括數據庫系統。

例如: WebLogic 平臺上配置了JDBC連接池的參數,最大連接數爲50 ,最小連接數爲5,增加量爲10。在測試時發現,當負載增加時,現有的連接數不足,系統會動態生成10個新的連接,導致交易處理的響應時間大大增加。這時可以認爲在應用軟件上出現了性能瓶頸。

  3)應用程序上的性能瓶頸

一般指的是開發人員新開發出來的應用程序。 例如:某程序員開發了一個繳費處理程序。在測試時發現,這個繳費處理程序在處理用戶的併發繳費請求時,只能串行處理,無法並行處理,導致繳費交易的處理時間很長,這是可以認爲在應用程序上出現了性能瓶頸。

   4)操作系統的性能瓶頸

一般指的是 WindowUnixlinux等操作系統

   5)網絡設備上的性能瓶頸

 一般指的是防火牆、動態負載均衡器、交換機等設備。 例如,在動態負載均衡器上設置動態分發負載的機制,當發現某個應用服務器上的硬件資源已經到達極限時,動態負載均衡器將後續的交易請求發送到其他負載較輕的應用服務器上。在測試時發現,動態負載均衡器機制沒有起到相應的作用,這是可以認爲在網絡設備上出現了性能瓶頸。

     性能瓶頸出現的原因及其定位是十分複雜的,這裏只是簡單介紹常見的幾種瓶頸類型和特徵,而性能測試所需要做的就是根據各種情況因素綜合考慮,然後協助開發人員一起定位性能瓶頸。

 

 

###一般性能問題調優的步驟###

Step1 確定問題

##應用程序代碼##:在通常情況下,很多程序的性能問題都是寫出來打的,因此對於發現瓶頸的模塊,應該首先檢查一下代碼。

##數據庫配置##:經常引起整個系統運行緩慢,一些諸如Oracle的大型數據庫都是需要DBA進行正確的參數調整才能投產的。

##操作系統配置##:不合理就可能引起系統瓶頸。

##硬件設置##: 硬盤速度、內存大小等都是容易引起瓶頸的原因,因此這些都是分析的重點。

##網絡##:網絡負載過重導致網絡衝突和網絡延遲

Step2.當確定了問題之後,我們要明確這個問題影響的是響應時間吞吐量,還是其他問題?

是多數用戶還是少數用戶遇到的問題?如果是少數用戶,這幾個用戶與其他用戶的操作有什麼不同?系統資源監控的結果是否正常?CPU 的使用是否達到了極限?IO情況如何?問題是否集中在某一類模塊中?是客戶端還是服務器出現問題?系統硬件配置是否夠用?實際負載是否超過了系統的負載能力?是否未對系統進行優化?

Step3確定調整目標和解決方案。

提高系統吞吐量,縮短響應時間,更好地支持併發。

Step4 測試解決方案

對通過解決方案調優後的系統進行基準測試。

Step5 分析調優結果

系統調優是否達到或者超出了預訂目標?系統是整體性能得到了改善,還是以犧牲某部分性能來解決其他問題。調優是否可以結束了?

最後,如果達到了預期目標,調優工作就基本可以結束了。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章