服務器性能瓶頸分析方法


1. 內存分析方法

  • 內存分析用於判斷系統有無內存瓶頸,是否需要通過增加內存等手段提高系統性能表現。
  • 內存分析需要使用的計數器:Memory類別和Physical Disk類別的計數器。內存分析的主要方法和步驟:

(1)首先查看Memory\Available Mbytes指標
如果該指標的數據比較小,系統可能出現了內存方面的問題,需要繼續下面步驟進一步分析。
注:在UNIX/LINUX中,對應指標是FREE(KB)

(2)注意Pages/sec、Pages Read/sec和Page Faults/sec的值
操作系統會利用磁盤較好的方式提高系統可用內存量或者提高內存的使用效率。這三個指標直接反應了操作系統進行磁盤交換的頻度。
如果Pages/sec的計數持續高於幾百,可能有內存問題。但Pages/sec值不一定就表明有內存問題,可能是運行使用內存映射文件的程序所致。Page Faults/sec說明每秒發生頁面失效次數,頁面失效次數越多,說明操作系統向內存讀取的次數越多。此事需要查看Pages Read/sec的計數值,該計數器的閥值為5,如果計數值超過5,則可以判斷存在內存方面的問題。
注:在UNIX/LINUX系統中,對於指標是(page)si和(page)so.

(3)根據Physical Disk計數器的值分析性能瓶頸
對Physical Disk計數器的分析包括對Page Reads/sec和%Disk Time及Aerage Disk Queue Length的分析。如果Pages Read/sec很低,同時%Disk Time和Average Disk Queue Length的值很高,則可能有磁盤瓶頸。但是,如果隊列長度增加的同時Pages Read/sec並未降低,則是內存不足。
注:在 UNIX/LINUX系統中,對應的指標是Reads(Writes)per sec、Percent of time the disk is busy和Average number of transactions waiting for service.

 

--------------------------------------------------------------------------

 

2.處理器分析法

(1)首先看System\%Total Processor Time 性能計數器的計數值
該計數器的值體現服務器整體處理器利用率,對多處理器的系統而言,該計數器提醒所有CPU的平均利用率。如果該值持續超過90%,則說明整個系統面臨着處理器方面的瓶頸,需要通過增加處理器來提高性能。
注:多處理器系統中,該數據本身不大,但PUT直接負載狀況極不均衡,也應該視作系統產生處理器方面瓶頸。

(2)其次查看每個CPU的Processor\%Processor Time 和 Processor\%User Time 和 Processor\%Privileged Time
Processor\%User Time 是系統非核心操作消耗的CPU時間,如果該值較大,可以考慮是否能通過友好算法等方法降低這個值。如果該服務器是數據庫服務器, Processor\%User Time 值大的原因很可能是數據庫的排序或是函數操作消耗了過多的CPU時間,此時可以考慮對數據庫系統進行優化。

(3)研究系統處理器瓶頸
查看 System\Processor Queue Length 計數器的值,當該計數器的值大於CPU數量的總數+1時,說明產生了處理器阻塞。在處理器的%Process Time很高時,一般都隨處理器阻塞,但產生處理器阻塞時,Processor\%Process Time 計數器的值並不一定很大,此時就必須查找處理器阻塞的原因。
%DOC Time 是另一個需要關注的內容,該計數器越低越好。在多處理器系統中,如果這個值大於50%,並且Processor\%Precessor Time非常高,加入一個網卡可能回提高性能。

 

--------------------------------------------------------------------------

 

3.磁盤I/O分析方法

(1)計算梅磁盤的I/O數
每磁盤的I/O數可用來與磁盤的I/O能力進行對比,如果經過計算得到的每磁盤I/O數超過了磁盤標稱的I/O能力,則說明確實存在磁盤的性能瓶頸。
每磁盤I/O計算方法
RAID0計算方法:(Reads +Writes)/Number of Disks
RAID0計算方法:(Reads +2*Writes)/2
RAID0計算方法:[Reads +(4*Writes)]/Number of Disks
RAID0計算方法:[Reads +(2*Writes)]/Number of Disks

(2)與Processor\Privileged Time 合並進行分析
如果在Physical Disk 計數器中,只有%Disk Time 比較大,其他值都比較適中,硬盤可能會是瓶頸。若幾個值都比較大,且數值持續超過80%,則可能是內存泄漏。

(3)根據Disk sec/Transfer進行分析
一般來說,定義該數值小於15ms為Excellent,介於15~30ms之間為良好,30~60ms之間為可以接受,超過60ms則需要考慮更換硬盤或是硬盤的RAID方式了。

 

--------------------------------------------------------------------------

 

4.進程分析方法

(1)查看進程的%Processor Time值
每個進程的%Processor Time反映進程所消耗的處理器時間。用不同進程所消耗的處理器時間進行對比,可以看出具體哪個進程在性能測試過程中消耗了最多的處理器時間,從而可以據此針對應用進行優化。

(2)查看每個進程產生的頁面失效
可以用每個進程產生的頁面失效(通過PRCESS\PAGE FAILURES/SEC計數器獲得)和系統頁面失效(可以通過MEMORY\PAGE FAILURES/SEC計數器獲得)的比值,來判斷哪個進程產生了最多的頁面失效,這個進程要么是需要大量內存的進程,要么是非常活躍的進程,可以對其進行重點分析。

(3)了解進程的Process/Private Bytes
Process/Private Bytes是指進程所分配的無法與其他進程共享的當前字節數量。該計數器主要用來判斷進程在性能測試過程中有無內存泄漏。例如:對於一個IIS之上的 WEB應用,我們可以重點監控inetinfo進程的Private Bytes,如果在性能測試過程中,該進程的Private Bytes計數器值不斷增加,或是性能測試停止后一段時間,該進程的Private Bytes仍然持續在高水平,則說明應用存在內存泄漏。
注:在UNIX/LINUX系統中,對應的指標是Resident Size

 

--------------------------------------------------------------------------

 

5.網絡分析方法

(1)Network Interface\Bytes Total/sec為發送和接收字節的速率,可以通過該計數器值來判斷網絡鏈接速度是否是瓶頸,具體操作方法是用該計數器的值和目前網絡的帶寬進行相除,結果小於50%。
1Mdit/sec(兆比特/秒)=131072bytes/sec(字節/秒)
1byte=8bit
IOMeter安裝、配置
IOMeter是業界廣泛使用的IO性能測試軟件。通過使用不同的IOMeter設定值來呈現文件服務器(選擇范圍為512Bytes到64KB)和網站服務器(選擇512Bytes到512KB作為I/O范圍)的相應負載。

在實際測試過程中可以使用IOMeter進行如下測量:

Max IO:
為了得到完整的磁盤性能數據,可以測試512Bytes到512MBytes等多種數據塊大小,並分別測試了100%讀取操作或100%寫入操作下的表現,測試隨機率可以從0%-100%,用於檢測磁盤子系統的最大輸入輸出能力。從所有的數據中,可以分別得到的數據指IOps(每秒操作數)以及MBps(傳輸速率)。

File Server:
文件服務器應用在一個多用戶或網絡化的環境中專門用於文件的儲存,恢復和管理。不同用戶的訪問形成了多線程,因此,其工作負載是隨機性的。輸入輸出大小是可變的,取決於所操作的文件大小。讀/寫分布也是變化的。總的來說,一個頻繁使用的多用戶服務器應該采用較高的隊列深度來模擬。

Web Server:
網站服務器應用於處理多用戶通過Internet或Intranet進行的訪問。這些請求具有典型的隨機性,並且在用戶訪問不同頁面或視頻應用時大量偏向於讀請求。同樣,一個訪問頻繁網站服務器也應該采用較高的隊列深度來模擬。最后,測試讀取尺寸從512Bytes到512KB不等,100%讀取操作,隨機率為100%,用於模擬Web服務器的性能。在實際的桌面環境中,小於4KB的塊訪問數量不少,但是由於操作系統的緩存的存在而具有一定的降低,主要的塊大小基於4KB。

IOMeter硬盤性能測試對CPU、內存等參數並不是很敏感——當然CPU要保證在測試中不能出現100%的占用率。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM