java项目性能测试过程记录
一?準備環境和指標
1.主機三臺(linux,這里顯示的都是偽主機地址):最好用干凈的機子,做性能測試的時候別裝其他東西在上面跑。
100.22.0.98??部署自己的項目服務?100.22.0.96??部署rpc服務(這里沒用到 可以不搞)
?100.22.0.97??部署jmeter (這是必須的) 2.統計指標:
| TPS | ?Avg time(ms) | cpu% | mem% | IO%(net) | cpu%(client) | IO%(client) | errors |
注: 還可以統計gc情況,連接數等,我這里只列舉一部分。
?
3.測試標準
》》》線程: 1 ? ?20 ? ?50 ? 100 ? 200
》》》報文:10B ?1k ?2k ?4k ? 8k
?
二 準備jmx(需了解jmeter的基本使用)
這里使用jmeter3.3版本,直接在官網下載。
先在本地解壓運行,注意用管理員權限運行jemter.bat,否則無法保存jmx文件。
?
1.測試http連接,主要配置和元件如下圖,可以先用一個線程測試一下連通性,然后保存為一個jmx文件。保存之前先把線程組勾成永遠。
?
?2.junit連接測試 ?
這個稍微麻煩一點,需要先搞定代碼,把測試類寫好,然后打包自己的項目,可以使用maven打包,最好打成tar包之類的。如XXXX.tar.gz
解壓以后,你的test類在哪個jar包里,就把哪個jar包放到jemter對應的目錄下:如 C:\Program Files\jmeter\apache-jmeter-3.3\lib\junit ?
其余的所有依賴jar包都放到這個目錄下:C:\Program Files\jmeter\apache-jmeter-3.3\lib
類名稱就是你放在junit目錄里可選擇的測試類,還可以選擇對應的test方法。和上面一樣,用一個線程測試連通性之后就可以保存成jmx文件了。
3.部署環境
測試命令:./bin/jmeter -n -t jmx路徑 -l 輸出的日志文件
?機器上測http很簡單,把jmx文件全上傳到服務器,運行jmeter命令就行了。
?但是測試junit就需要向剛才在本地一樣,把對應的jar包放到junit目錄里,然后其他jar包放到lib目錄里。
?建議先做基線測試,就是一個線程分別跑10B?、1k等長度的報文,統計指標數據。
?
三 測試指標采集
97(client)機器上是這樣的:
通過上面這個圖可以看出兩個指標,TPS是163269/s左右,avg平均響應時間是0。 active是線程數。這里跑了200個線程來做測試。可以忽略第一條打印的結果,因為它把系統尋找時間之類的加上去了。
?用top命令看下內存和cpu使用量: cpu = us+sy = 24.3% ? ? ?mem = 4.5%
?
IO%(client) 這個指標的采集需要借助一個叫netstat的工具。
nicstat -M -i eth0(網卡名) 1s
?注: watch cat /proc/net/dev? ?(查看當前linux系統使用網卡,一般流量最大的網卡就是當前使用的)
還有一個叫磁盤使用量,也是借助一個叫dstat的工具,查看命令如下
dstat -d --disk-util?
?
98(server)機器上
?用top命令看下cpu和mem,然后記錄到表。用netstat命令采集IO%(net)。
?
五 JvisualVM 和 java飛行器
待監測應用打開jvisualvm端口
示例:
在wrapper打包的應用中的/etc/wrapper.conf中添加以下三行:
?
?
還有一個據說很強大的神器叫JproFilter還有一個據說很強大的神器Jprofilter :
JProfiler性能分析:https://www.cnblogs.com/shoutn/p/7800829.html
轉載于:https://www.cnblogs.com/chaos-li/p/9811570.html
總結
以上是生活随笔為你收集整理的java项目性能测试过程记录的全部內容,希望文章能夠幫你解決所遇到的問題。