一、 單實例SkyWalking主機CPU80%時,測試其支持TPS值是否能達到5000html
二、 單實例SkyWalking主機持續加壓2小時,TPS5000時,測試SkyWalking的穩定性java
三、 對SkyWalking集羣性能測試,測試其TPS爲5000時,集羣的負載是否均衡apache
四、 分析 SkyWalking Agent探針對被測試服務的性能影響centos
官網給出參考:單實例SkyWalking的cpu爲80%時,tps爲5000服務器
tps已知,5000cookie
驗證性需求,單實例SkyWalking主機CPU指標80%左右時,測試tps值分佈式
穩定性測試,單實例SkyWalking主機持續加壓2小時,tps5000工具
SkyWalking集羣性能測試,採用jmeter集羣壓力機測試,測試SkyWalking集羣負載是否均衡post
經過加SkyWalking Agent探針和不加探針,分別壓測,分析SkyWalking Agent探針對被測服務167的性能影響性能
單個訂單接口模擬應用程序,被測主機167
單實例SkyWalking145主機監控被測服務167,採用逐步加壓方式,測試145的CPU達80%左右時,TPS值是否可達5000,加壓大約6分鐘
單實例SkyWalking145主機監控被測服務167,TPS值維持5000,持續加壓2小時,測試穩定性
SkyWalking集羣監控被測服務167,TPS值維持5000,集羣壓力機加壓30分鐘,測試SkyWalking集羣負載是否均衡
經過加SkyWalking Agent探針和不加探針,單臺壓力機分別壓測10分鐘,分析SkyWalking Agent探針對被測服務167的性能影響
單實例SkyWalking監控被測服務167組網圖以下:
集羣 SkyWalking監控被測服務167組網圖以下:
注:全部機器部署在同一網段下
兩臺壓力機171和178均爲Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz,8核8G
其餘主機均爲Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz,4核8G
採用jmeter腳本壓測
採用collectd+influxdb+grafana做爲實時監控,其監控數據可持久保存,方便查詢
採用netdata做爲實時監控,壓測時,觀察比較方便
171和178做爲壓力機,173做爲調度機,三臺機器均安裝jmeter
centos7,/home目錄下,建立jmeter用戶
useradd jmeter && echo jmeter | passwd --stdin jmeter
官網下載jmeter安裝包,解壓
bing.com搜索jmeter,下載安裝包,直接解壓便可
解壓後,user.properties文件末端添加:
CookieManager.check.cookies=false
配置環境變量
jmeter環境變量配置:
sudo vi /etc/profile
末尾添加:
export JMETER_HOME=/home/jmeter/apache-jmeter-4.0
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
保存後source下,使其生效
source /etc/profile
檢查環境變量是否生效
# jmeter --help
_ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____
/ \ | _ \ / \ / ___| | | | ____| | | \/ | ____|_ _| ____| _ \
/ _ \ | |_) / _ \| | | |_| | _| _ | | |\/| | _| | | | _| | |_) |
/ ___ \| __/ ___ \ |___| _ | |___ | |_| | | | | |___ | | | |___| _ <
/_/ \_\_| /_/ \_\____|_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 4.0 r1823414
Copyright (c) 1999-2018 The Apache Software Foundation
To list all command line options, open a command prompt and type:
jmeter.bat(Windows)/jmeter.sh(Linux) -?
--------------------------------------------------
壓力機171/178配置以下:
jmeter的bin目錄下jmeter.properties中:
remote_hosts=10.34.110.171 #本機IP
server_port=1099 # 前面註釋去掉
server.rmi.localport=1099 # 前面註釋去掉
server.rmi.ssl.disable=true
除此以外,服務器配置了雙網卡,內外網的隔離,jmeter在啓動時會優先找內網地址,不識別配置的服務器地址,修改方法以下:
/apache-jmeter-4.0/bin目錄下jmeter-server文件:
RMI_HOST_DEF=-Djava.rmi.server.hostname=10.34.110.171 #將前面註釋去掉,並修改成壓力機的IP
保存後,執行命令./jmeter-server
,看到啓動的IP和端口1099便可
實際壓測時,可將壓力機後臺運行,nohup ./jmeter-server &
調度器173配置以下:
jmeter.server中:
remote_hosts=10.34.110.171:1099,10.34.110.178:1099
server_port=1099
server.rmi.localport=1099
server.rmi.ssl.disable=true
修改後,保存便可
collectd+influxdb+grafana環境搭建以前已寫過,參考以下:
[collectd+influxDB+grafana搭建性能監控平臺](https://www.cnblogs.com/hanzhang/p/9240592.html)
netdata部署以前已寫過,參考netdata實時監控部署
單一訂單接口,http請求,post方法
思考時間10ms
固定吞吐量,保持tps在5000左右
關閉監聽器,斷言,debug sample等,保存腳本,並傳到173調度機上
173調度機上執行測試腳本命令以下:
nohup jmeter.sh -R 10.34.110.171:1099,10.34.110.178:1099 -n -t SkyWalking_test.jmx -l ../jtl/rpjq01.jtl -e -o ../report/rpjq01 &
後臺運行執行腳本,可經過日誌查看執行記錄,執行完成後,可生成html的報告
日誌以下
tailf jmeter.log
關停
因已配置jmeter的環境變量,關停測試時,任意路徑下執行stoptest.sh便可,此時壓力機再也不加壓,但仍在啓動中;
若執行shutdown.sh命令,則關閉壓力機,從新執行時,需先開啓壓力機
觀察後臺監控netdata和grafana面板,須要時,作好記錄
jmeter的報告以文件夾方式生成,打成zip包,下載到本地,解壓,訪問html頁面便可
實時監控grafana可查看壓測過程的曲線圖
結果分析
出具測試報告,並提交