性能測試分析2

一:性能分析的基礎知識:
    1.幾個重要的性能指標:相應時間、吞吐量、吞吐率、TPS(每秒鐘處理的交易數)、點
擊率等。
    2.系統的瓶頸分爲兩類:網絡的和服務器的。服務器瓶頸主要涉及:應用程序、WEB服務
器、數據庫服務器、操做系統四個方面。
    3.常規、粗略的性能分析方法:
    當增大系統的壓力(或增長併發用戶數)時,吞吐率和TPS的變化曲線呈大致一致,則系統
基本穩定;若壓力增大時,吞吐率的曲線增長到必定程度後出現變化緩慢,甚至平坦,極可能是
網絡出現帶寬瓶頸,同理若點擊率/TPS曲線出現變化緩慢或者平坦,說明服務器開始出現頸。web

 4.做者提出了以下的性能分析基本原則,此原則本人十分贊同:算法

 


            ——由外而內、由表及裏、層層深刻
    應用此原則,分析步驟具體能夠分爲如下三步:
   第一步:將獲得的響應時間和用戶對性能的指望值比較肯定是否存在瓶頸;
   第二步:比較Tn(網絡響應時間)和Ts(服務器響應時間)能夠肯定瓶頸發生在網絡仍是服
務器;
   第三步:進一步分析,肯定更細組件的響應時間,直到找出發生性能瓶頸的根本緣由。
二:以WEB應用程序爲例來看下具體的分析方法:
    1.用戶事務分析:
    a.事務綜述圖(Transaction Summary ):以柱狀圖的形式表現了用戶事務執行的成功與
失敗。經過分析成功與失敗的數據能夠直接判斷出系統是否運行正常。若失敗的事務很是多,則
說明系統發生了瓶頸或者程序在執行過程當中發生了問題。
    b.事務平均響應時間分析圖(Average Transaction Response Time): 該圖顯示在
測試場景運行期間的每一秒內事務執行所用的平均時間,還顯示了測試場景運行時間內各個事務
的最大值、最小值和平均值。經過它能夠分析系統的性能走向。若全部事務響應時間基本成一條數據庫

 


曲線,則說明系統性能基本穩定;不然若是平均事務響應時間逐漸變慢,說明性能有降低趨勢,
形成性能降低的緣由有多是因爲內存泄漏致使。
    c.每秒經過事務數分析圖(Transaction per Second即TPS):顯示在場景運行的每一
秒中,每一個事 務經過、失敗以及中止的數量。經過它能夠肯定系統在任何給定時刻的實際事務
負載。若隨着測試的進展,應用系統在單位時間內經過的事務數目在減小,則說明服務器出現瓶
頸。
     d.每秒經過事務總數分析圖(Total Transactions per Second):顯示場景運行的
每一秒中,經過、失敗以及中止的事務總數。若在同等壓力下,曲線接近直線,則性能基本趨於
穩定;若在單位時間內經過的事務總量愈來愈少,即總體性能降低。緣由多是內存泄漏或者程
序中的缺陷。
      e.事務性能摘要圖(Transaction Performance Summary):顯示方案中全部事務的
最小、最大平均執行時間,能夠直接判斷響應時間是否符合客戶要求(重點關注事務平均、最大
執行時間)。
      f.事務響應時間與負載分析圖(Transaction Response Time Under load):經過 
該圖能夠看出在任一時間點事務響應時間與用戶數目的關係,從而掌握系統在用戶併發方面的性
能數據。
      g.事務響應時間(百分比)圖(Transaction Response Time(percentile)):該
圖是根據測試結果進行分析而獲得的綜合分析圖。分析該圖應從總體出發,若可能事務的最大響
應時間很長,但若是大多數事務具備可接受的響應時間,則系統的性能是符合。
      h.事務響應時間分佈狀況圖(Transaction Response Time (Distribution)):該
圖顯示了測試過程當中不一樣響應時間的事務數量。若系統預先定義了相關事務能夠接受的最小和最
大事務響應時間,則可使用此圖肯定系統性能是否在接受範圍內。緩存

 

----------------------------------------------------------------------------------------服務器

 

分析原則:網絡

• 具體問題具體分析(這是因爲不一樣的應用系統,不一樣的測試目的,不一樣的性能關注點)併發

• 查找瓶頸時按如下順序,由易到難。數據庫設計

    服務器硬件瓶頸-〉網絡瓶頸(對局域網,能夠不考慮)-〉服務器操做系統瓶頸(參數配置)-〉中間件瓶頸(參數配置,數據庫,web服務器等)-〉應用瓶頸(SQL語句、數據庫設計、業務邏輯、算法等)性能

    注:以上過程並非每一個分析中都須要的,要根據測試目的和要求來肯定分析的深度。對一些要求低的,咱們分析到應用系統在未來大的負載壓力(併發用戶數、數據量)下,系統的硬件瓶頸在哪兒就夠了。測試

• 分段排除法 頗有效

分析的信息來源:

•1 根據場景運行過程當中的錯誤提示信息

•2 根據測試結果收集到的監控指標數據

一.錯誤提示分析

分析實例:

1 •Error: Failed to connect to server 「10.10.10.30:8080″: [10060] Connection

•Error: timed out Error: Server 「10.10.10.30″ has shut down the connection prematurely

分析:

•A、應用服務死掉。

(小用戶時:程序上的問題。程序上處理數據庫的問題)

•B、應用服務沒有死

(應用服務參數設置問題)

    例:在許多客戶端鏈接Weblogic應用服務器被拒絕,而在服務器端沒有錯誤顯示,則有多是Weblogic中的server元素的AcceptBacklog屬性值設得太低。若是鏈接時收到connection refused消息,說明應提升該值,每次增長25%

•C、數據庫的鏈接

(一、在應用服務的性能參數可能過小了 二、數據庫啓動的最大鏈接數(跟硬件的內存有關))

2 Error: Page download timeout (120 seconds) has expired

分析:多是如下緣由形成

•A、應用服務參數設置太大致使服務器的瓶頸

•B、頁面中圖片太多

•C、在程序處理表的時候檢查字段太大多

二.監控指標數據分析

1.最大併發用戶數:

應用系統在當前環境(硬件環境、網絡環境、軟件環境(參數配置))下能承受的最大併發用戶數。

    在方案運行中,若是出現了大於3個用戶的業務操做失敗,或出現了服務器shutdown的狀況,則說明在當前環境下,系統承受不了當前併發用戶的負載壓力,那麼最大併發用戶數就是前一個沒有出現這種現象的併發用戶數。

    若是測得的最大併發用戶數到達了性能要求,且各服務器資源狀況良好,業務操做響應時間也達到了用戶要求,那麼OK。不然,再根據各服務器的資源狀況和業務操做響應時間進一步分析緣由所在。

2.業務操做響應時間:

    • 分析方案運行狀況應從平均事務響應時間圖和事務性能摘要圖開始。使用「事務性能摘要」圖,能夠肯定在方案執行期間響應時間過長的事務。

• 細分事務並分析每一個頁面組件的性能。查看過長的事務響應時間是由哪些頁面組件引發的?問題是否與網絡或服務器有關?

• 若是服務器耗時過長,請使用相應的服務器圖肯定有問題的服務器度量並查明服務器性能降低的緣由。若是網絡耗時過長,請使用「網絡監視器」圖肯定致使性能瓶頸的網絡問題

3.服務器資源監控指標:

內存:

1 UNIX資源監控中指標內存頁交換速率(Paging rate),若是該值偶爾走高,代表當時有線程競爭內存。若是持續很高,則內存多是瓶頸。也多是內存訪問命中率低。

2 Windows資源監控中,若是Process\Private Bytes計數器和Process\Working Set計數器的值在長時間內持續升高,同時Memory\Available bytes計數器的值持續下降,則極可能存在內存泄漏。

內存資源成爲系統性能的瓶頸的徵兆:

很高的換頁率(high pageout rate);

進程進入不活動狀態;

交換區全部磁盤的活動次數可高;

可高的全局系統CPU利用率; 

內存不夠出錯(out of memory errors)

處理器:

1 UNIX資源監控(Windows操做系統同理)中指標CPU佔用率(CPU utilization),若是該值持續超過95%,代表瓶頸是CPU。能夠考慮增長一個處理器或換一個更快的處理器。若是服務器專用於SQL Server,可接受的最大上限是80-85% 

合理使用的範圍在60%至70%。

2 Windows資源監控中,若是System\Processor Queue Length大於2,而處理器利用率(Processor Time)一直很低,則存在着處理器阻塞。

CPU資源成爲系統性能的瓶頸的徵兆: 

很慢的響應時間(slow response time) 

CPU空閒時間爲零(zero percent idle CPU) 

太高的用戶佔用CPU時間(high percent user CPU) 

太高的系統佔用CPU時間(high percent system CPU) 

長時間的有很長的運行進程隊列(large run queue size sustained over time)

磁盤I/O:

1 UNIX資源監控(Windows操做系統同理)中指標磁盤交換率(Disk rate),若是該參數值一直很高,代表I/O有問題。可考慮更換更快的硬盤系統。

2 Windows資源監控中,若是 Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec頁面讀取操做速率很低,則可能存在磁盤瓶徑。

I/O資源成爲系統性能的瓶頸的徵兆 :

太高的磁盤利用率(high disk utilization) 

太長的磁盤等待隊列(large disk queue length) 

等待磁盤I/O的時間所佔的百分率過高(large percentage of time waiting for disk I/O) 

過高的物理I/O速率:large physical I/O rate(not sufficient in itself) 

太低的緩存命中率(low buffer cache hit ratio(not sufficient in itself)) 

太長的運行進程隊列,但CPU卻空閒(large run queue with idle CPU)

4.數據庫服務器:

SQL Server數據庫:

1 SQLServer資源監控中指標緩存點擊率(Cache Hit Ratio),該值越高越好。若是持續低於80%,應考慮增長內存。

2 若是Full Scans/sec(全表掃描/秒)計數器顯示的值比1或2高,則應分析你的查詢以肯定是否確實須要全表掃描,以及SQL查詢是否能夠被優化。 

3 Number of Deadlocks/sec(死鎖的數量/秒):死鎖對應用程序的可伸縮性很是有害,而且會致使惡劣的用戶體驗。該計數器的值必須爲0。

4 Lock Requests/sec(鎖請求/秒),經過優化查詢來減小讀取次數,能夠減小該計數器的值

相關文章
相關標籤/搜索