內存不足,IO磁盤(pán)問(wèn)題使得CPU的開(kāi)銷(xiāo)增加
磁盤(pán)I/O分析
【監控指標】:PhysicalDisk/%Disk time,PhysicalDisk/%Idle Time,Physical Disk\ Avg.Disk Queue Length, Disk sec/Transfer
【參考值】:%Disk Time建議閾值90%
Windows資源監控中,如果% Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec頁(yè)面讀取操作速率很低,則可能存在磁盤(pán)瓶徑。
Processor%Privileged Time該參數值一直很高,且如果在 Physical Disk 計數器中,只有%Disk time 比較大,其他值都比較適中,硬盤(pán)可能會(huì )是瓶頸。若幾個(gè)值都比較大, 那么硬盤(pán)不是瓶頸。若數值持續超過(guò)80%,則可能是內存泄露。如果 Physical Disk 計數器的值很高時(shí)該計數器的值(Processor%Privileged Time)也一直很高, 則考慮使用速度更快或效率更高的磁盤(pán)子系統。
Disk sec/Transfer 一般來(lái)說(shuō),該數值小于15ms為最好,介于15-30ms之間為良好,30-60ms之間為可以接受,超過(guò)60ms則需要考慮更換硬盤(pán)或是硬盤(pán)的RAID方式了.
Average Transaciton Response Time(事務(wù)平均響應時(shí)間)隨著(zhù)測試時(shí)間的變化,系統處理事務(wù)的速度開(kāi)始逐漸變慢,這說(shuō)明應用系統隨著(zhù)投產(chǎn)時(shí)間的變化,整體性能將會(huì )有下降的趨勢
Transactions per Second(每秒通過(guò)事務(wù)數/TPS)當壓力加大時(shí),點(diǎn)擊率/TPS曲線(xiàn)如果變化緩慢或者有平坦的趨勢,很有可能是服務(wù)器開(kāi)始出現瓶頸
Hits per Second(每秒點(diǎn)擊次數)通過(guò)對查看“每秒點(diǎn)擊次數”,可以判斷系統是否穩定。系統點(diǎn)擊率下降通常表明服務(wù)器的響應速度在變慢,需進(jìn)一步分析,發(fā)現系統瓶頸所在。
Throughput(吞吐率)可以依據服務(wù)器的吞吐量來(lái)評估虛擬用戶(hù)產(chǎn)生的負載量,以及看出服務(wù)器在流量方面的處理能力以及是否存在瓶頸。
Connections(連接數)當連接數到達穩定狀態(tài)而事務(wù)響應時(shí)間迅速增大時(shí),添加連接可以使性能得到極大提高(事務(wù)響應時(shí)間將降低)
Time to First Buffer Breakdown(Over Time)(第一次緩沖時(shí)間細分(隨時(shí)間變化))可以使用該圖確定場(chǎng)景或會(huì )話(huà)步驟運行期間服務(wù)器或網(wǎng)絡(luò )出現問(wèn)題的時(shí)間。
碰到過(guò)的性能問(wèn)題:
1. 在高并發(fā)的情況下,產(chǎn)生的處理失敗(比如:數據庫連接池過(guò)低,服務(wù)器連接數超過(guò)上限,數據庫鎖控制考慮不足等)
2. 內存泄露(比如:在長(cháng)時(shí)間運行下,內存沒(méi)有正常釋放,發(fā)生宕機等)
3. CPU使用偏離(比如:高并發(fā)導致CPU使用率過(guò)高)
4. 日志打印過(guò)多,服務(wù)器無(wú)硬盤(pán)空間
如何定位這些性能問(wèn)題:
1. 查看系統日志,日志是定位問(wèn)題的不二法寶,如果日志記錄的全面,很容易通過(guò)日志發(fā)現問(wèn)題。
比如,系統宕機時(shí),系統日志打印了某方法執行時(shí)拋出out of memory的錯誤,我們就可以順藤摸瓜,很快定位到導致內存溢出的問(wèn)題在哪里。
2. 利用性能監控工具,比如:JAVA開(kāi)發(fā)B/S結構的項目,可以通過(guò)JDK自帶的Jconsole,或者JProfiler,來(lái)監控服務(wù)器性能,Jconsole可以遠程監控服務(wù)器的CPU,內存,線(xiàn)程等狀態(tài),并繪制變化曲線(xiàn)圖。
利用Spotlight可以監控數據庫使用情況。
我們需要關(guān)注的性能點(diǎn)有:CPU負載,內存使用率,網(wǎng)絡(luò )I/O等
3. 工具和日志只是手段,除此之外,還需要設計合理的性能測試場(chǎng)景
具體場(chǎng)景有:性能測試,負載測試,壓力測試,穩定性測試,浪涌測試等
好的測試場(chǎng)景,能更加快速的發(fā)現瓶頸,定位瓶頸
4. 了解系統參數配置,可以進(jìn)行后期的性能調優(yōu)
除此以外,還想說(shuō)個(gè)題外話(huà),就是關(guān)于性能測試工具的使用問(wèn)題
在剛開(kāi)始用Loadrunner和JMeter的時(shí)候,做高并發(fā)測試時(shí),都出現過(guò)沒(méi)有把服務(wù)器壓垮,這兩個(gè)程序自己先倒下的情況。
如果遇到這個(gè)問(wèn)題,可以通過(guò)遠程調用多個(gè)客戶(hù)端的服務(wù),分散性能測試工具客戶(hù)端的壓力來(lái)解決。
說(shuō)這個(gè)的目的是想說(shuō),做性能測試的時(shí)候,我們一定要確保瓶頸不要發(fā)生在我們自己的測試腳本和測試工具上。
性能測試又可細分,下面簡(jiǎn)單提一下
性能測試是通過(guò)自動(dòng)化的測試工具模擬多種正常、峰值以及異常負載條件來(lái)對系統的各項性能指標進(jìn)行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進(jìn)行。通過(guò)負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時(shí),系統各項性能指標的變化情況。壓力測試是通過(guò)確定一個(gè)系統的瓶頸或者不能接收的性能點(diǎn),來(lái)獲得系統能提供的最大服務(wù)級別的測試。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/