jmeter常用的監聽器


jmeter常用的監聽器

jp@gc - Bytes Throughput Over Time:不同時間吞吐量展示(圖表) 
聚合報告里,Throughput是按請求個數來展示的,比如說1.9/sec,就是每s發送1.9個請求;而這里的展示是按字節Bytes來展示的圖表

jp@gc - Composite Graph 混合圖表 

在它的Graphs里面可以設置多少個圖表一起展示,它可以同時展示多個圖表

jp@gc - Hits per Second每秒點擊量

jp@gc - PerfMon Metrics Collector服務器性能監測控件,包括CPU,Memory,Network,I/O等等

jp@gc - Reponse Latencies Over Time記錄客戶端發送請求完成后,服務器端返回請求之前這段時間

jp@gc - Reponse Times Distribution 顯示測試的響應時間分布,X軸顯示由時間間隔分組的響應時間,Y軸包含每個區間的樣本數

jp@gc - Transactions per Second 每秒事務數,服務器每秒處理的事務數

jp@gc - Reponse Times vs Threads展示事務響應時間與虛擬用戶數之前的對應關系

 

 

服務器性能分析:

cpu:

CPU 在操作系統中是運行的根本,CPU的執行速度與性能好壞在很大程度上決定了系統整體的性能的快慢,最開始大部分任務是單線程調度,CPU在同一時間內只能運行一個線程,但隨着多處理器技術的成熟,軟件架構的深入和復雜度的提升,單處理系統組件在往多處理系統轉變,這些都是利用處理器的多核心處理能力的特性來提升系統性能.在做系統性能分析前,首先我們要了解系統處理器的情況,如邏輯處理器,處理器型號,主頻率,cache大小,是否支持超線程技術等信息,在知道這些的情況下,才能更好地進行我們系統的性能分析.

除此之外,CPU的使用率也是我們需要關注的很重要指標,CPU處於滿載狀態時,很多時候我們要結合系統附帶的一些系統監控分析工具,檢查相關的系統日志,web服務器日志,DB日志等,結合輔助一些命令如top,free,uptime,sar等輔助分析為什么系統CPU會被完全占用,以及后續的解決優化方案.

memery:內存

在系統性能因素中,內存大小也是影響系統性能的一個非常核心的指標,當可用的內存太小,系統進程會被阻塞中,應用也將會變得非常緩慢,有時候會失去響應,嚴重的甚至可能會觸發系統的OOM(內存溢出)從而引發應用程序被系統給殺死,更嚴重的情況可能會引起系統重啟;當機器的內存太大的時候,有時候也是一種浪費,這時候我們可以考慮做一些緩存服務去提升系統性能.

虛擬內存也是在內存里面我們需要考慮的性能指標,在系統設計中,當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用.那些被釋放的空間可能來自一些長時間沒什么操作的程序,這些被釋放的空間被臨時保存到虛擬內存空間中,等到那些程序要運行時,再從虛擬內存中恢復保存的數據到物理內存中.這樣,系統總是在物理內存不夠時,才進行內存之間的交換,有時可以越過系統性能瓶頸,節省系統升級費用.在做性能分析的時候,我們也要考慮系統有無設置虛擬內存,以及虛擬內存的使用情況.

內存分析

Mem:232600k,total

物理內存總量

Mem:224688k,used

使用的物理內存總量

Mem:7912k,free

空閑內存總量

Mem:8508k,buffers

用作內核緩存的內存量

Mem:46264,cached

緩沖的交換區總量

Swap:209714k,total

交換區總量

Swap:62052k,used

使用的交換區總量

Swap:2035092k,free

空閑的交換區總量

swap:交換分區

DIsks I/O:硬盤

訪問應用離不開系統的磁盤數據的讀寫,I/O讀寫的性能直接會影響系統程序的性能.讀寫的性能直接會影響系統程序的性能,磁盤I/O系統是系統中最慢的部分.I/O比較頻繁的時候,如果I/O得不到滿足會導致應用阻塞.針對I/O的場景模型,我們要考慮的有I/OTPS,平均I/O數據,平均隊列長度,平均服務時間,平均等待時間,IO利用率等指標.

network I/O :網絡

系統應用之間的交互,尤其是跨機器之間的,都是要基於網絡的,因此網絡寬帶,響應時間,網絡延時,阻塞等都是影響系統性能的因素.假如應用在不穩定和不安全的網絡下會導致應用程序的超時,丟棄,阻塞,波動率大,這些在系統中都是不能接受的.我們需要一個可靠的,穩定的,能滿足我們應用程序在機器之間暢通無阻地運行,這些需要測試工程師,網絡管理員,系統管理員等一起合作把系統的網絡完善.

在系統中,我們要考慮對應的網絡是否可達,防火牆是否開啟,端口訪問,帶寬是否有被限制,路由的尋址,網絡的延時等問題.

TCP:一種網絡傳輸協議

JMX:

EXEC:

TALL:

 

模塊

類型

度量方式

衡量標准

CPU

使用情況

1.vmstat 統計l-id 的計數

2.sar-u 統計l-%idle的計數

3.dstat命令 統計 l-idl的計數

4.mpstat-PALL 統計 l-%idle的計數

5.ps命令統計cpu的計數

注意≥50%

告警≥70%

嚴重≥90%

CPU

滿載

6.vmstat r 計數 >CPU邏輯順數

7.sar –q,”runq-sz”>CPU邏輯順數

8.dstat –p,”run”>CPU邏輯順數

運行的隊列大於1,證明已經有一定的負載了,不過這個計數也不絕對,需進一步分析其他的資源情況來斷定CPU是否已滿載負荷運作

CPU

錯誤

9.通過perf工具去捕獲處理器的錯誤信息,需處理器支持

需處理支持

內存

使用情況

1.free命令查看使用情況

2.vmstat命令查看使用情況

3.sar-r命令查看使用情況

4.ps命令查看使用情況

注意≥50%

告警≥70%

嚴重≥90%

內存

滿載

5.vmstatsi/so 比例輔助swapd free 利用

6.sar-W 查看每次缺頁數

7.查看內核日志有無OOM 機制kill 進程

8.dmesg|grep killed

1.so數值大,swapd已經占比很高,內存肯定已經飽和

2.sar命令次缺頁多意味已經在不停地和swap打交道,證明內存已經飽和

3.當內存不夠用會觸發內核的OOM機制

內存

錯誤

9.查看內有無physical failures

10.通過工具如valgrind 等進行檢查

有計數

網絡

使用情況

1.sar –n DEV 的收發計數大於網卡上限

2.ifconfig RX/TX 寬帶超過網卡上限

3.cat/proc/net/dev/ 的速率超過上限

4.nicstatutil 基本滿負荷

1.收發包的吞吐速率達到網卡上限

2.有延遲

3.有丟包

4.有阻塞

網絡

滿載

5.ifconfig dropped 有計數

6.nestat-s”segments retransimted”有計數

7.sar-n EDEV rxdrop txdrop 有計數

統計的丟包有計數證明已滿載了

IO

使用情況

1.iostat –xz,”%util”

2.sar-d,”%util”

3.iotop的利用率很高

4.cat/proc/pid/sched|grep jowait

注意≥50%

告警≥70%

嚴重≥90%

IO

滿載

5.iostat –xnzl,”avgqu-sz”>1

6.iostat await>70

IO 已經有滿載嫌疑

IO

錯誤

7.dmesg 查看io錯誤

8.smartctl/dev/sda

有信息

 

系統負載監控分析實踐

uptime命令:主要用於獲取主機運行時間和查詢Linux系統負載等信息,uptime命令可以顯示系統已經運行了多長時間,以及有多少用戶登錄,快速獲取服務器的負荷情況,它信息顯示依次為:現在時間,系統已經運行了多長時間,目前有多少登錄用戶,系統在過去的1分鍾,5分鍾,15分鍾內的平均負載.

1.uptime的系統存活時間越長,意味着系統穩定,我們可以通過uptime查看系統這一段時間有無重啟,這也是一種常見分析系統是否穩定的命令

2.通過uptime命令可以得知當前有多少登錄用戶,但相對來說w命令會更好地顯示當前登錄用戶數的信息.

3.一般系統建議每個CPU內核的當前活動進程數量最好不要大於0.8,證明系統是空閑的,大於1且不小於3的時候,如果系統的其他資源很正常,那么系統的性能也可以接受的.但如果任務數大於5的話,那證明系統性能有問題了.以一個四核CPU的主機為例,uptime的輸出結果超過15,那就意味着當前系統負載非常嚴重,需要分析當前的進程調度策略,是否有阻塞等,估計此時可能打開運行腳本都會非常緩慢的.

4.系統負載的3個值表示的是系統過去的1分鍾,5分鍾,15分鍾的一個平均值.通過這3個值的信息,我們 可以分析出系統負載的趨勢:是否增加,穩固,降低等.

Linux系統性能分析思路和實踐

負載uptime命令

CPU top命令

Windows 系統性能分析思路和實踐

性能監視器綜述:

perfmon 進入性能監視器

中間件Tomcat 監控 Probe

監控項

類別

計數器

描述

tomcat

JVM 內存

關注GC 回收頻率,Full GC 次數越少越好

最大線程數

線程池連接數長期大80%以上,建議優化

數據庫連接數

活動連接數長期大於80%以上,建議優化連接池

請求數

請求狀態

線程數,線程狀態,大量 Blocked 狀態線程可以 Dump 線程棧信息進行分析

性能調優常用手段:

1.空間換時間,內存,緩存就是典型的空間換時間的例子.利用內存緩存從磁盤上取出的數據,CPU請求數據直接 從內存中獲取,從而獲取比從磁盤讀取數據更高的效率

2.時間換空間:當空間成為瓶頸時,切分數據分批次處理,用更少的空間完成任務處理.上傳大附件時經常用這種方式.

3.分而治之:把任務切分,分開執行,也方便並行執行來提高效率.

4.異步處理:業務鏈路上有任務時間消耗較長,可以拆分業務,減少阻塞影響.常見的異步處理機制有MQ(消息隊列),目前在互聯網應用中大量使用.

5.並行:用多個進程或者線程同時處理業務,縮短業務處理時間,比如我們在銀行辦理業務時,如果排隊人數較多時,銀行會加開櫃台.

6.離用戶更近一些:比如CDN技術,把用戶的靜態資源放在離用戶更近的地方.

7.一切可擴展:業務模塊化,服務化,良好的水平擴展能力.

分布式架構的運用給性能帶來了革命性的提升,業務流程的調整也會顯著提升系統性能,單系統的調優能夠壓榨出更高的處理能力.

系統的發展:

單體--à集群--à分布式--à分布式集群

單機性能分析與調優

客戶端--à應用服務器--à數據庫

我們的服務運行在中間件上,中間件與DB運行在操作系統上,操作系統來管理計算機硬件設備(CPU,內存,磁盤,網卡等設備).

單機性能分析流程:

Client:客戶端

Load Machine:負載生成器模擬用戶負載

webserver:提供Web服務的服務器,即我們訪問的web頁面由此服務器提供服務;一般部署在Nginx,Apache等中間件上.

Middleware:中間件,比如Tomcat,Jboss,WebLogic

OS:操作系統

System Resource:系統資源

APPserver:應用服務器,實現業務邏輯

DB:數據庫服務器

配置優化:

JVM配置優化

連接池:

連接池配置參數

連接池配置多少連接合適

監控連接池

線程池:

緩存機制:

 


免責聲明!

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



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