一、 单实例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可查看压测过程的曲线图
结果分析
出具测试报告,并提交