typora-copy-images-to: assert
typora-root-url: assert
概述
1.性能指标
从外部看,性能测试主要关注如下三个指标【量越大越好,时间越少越好】
吞吐量:每秒钟系统能够处理的请求数、任务数。
响应时间:服务处理一个请求或一个任务的耗时。
错误率:一批请求中结果出错的请求所占比例。
响应时间RT(重要)
响应时间(Response Time:RT)
响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响
应结束,整个过程所耗费的时间。
错误率(重要)
错误率 一批请求中结果出错的请求所占比例。
HPS
HPS(Hits Per Second):
每秒点击次数,单位是次/秒。
TPS吞吐量(重要)
TPS(Transaction per Second):
系统每秒处理交易数,单位是笔/秒。
QPS(重要)
**QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。**
对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS,一
般情况下用 TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表
示对服务器单击请求。
**无论TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好,根据经**
**验,一般情况下:**
金融行业:1000TPS~5000OTPS,不包括互联网化的活动
保险行业:100TPS~10000OTPS,不包括互联网化的活动
制造行业:10TPS~5000TPS
互联网电子商务:1000OTPS~1000000TPS
互联网中型网站:1000TPS~50000TPS
互联网小型网站:50OTPS~10000TPS
最大响应时间
最大响应时间(MaxResponse Time):
指用户发出请求或者指令到系统做出反应(响应)
的最大时间。
最少响应时间
最少响应时间(Mininum ResponseTime):
指用户发出请求或者指令到系统做出反应(响应)的最少时间。
90%响应时间
90%响应时间(90%Response Time)**是指所有用户的响应时间进行排序,第90%的响
应时间。
2.压测工具
Apache AB
加特林
JMeter
文档网址:https://jmeter.apache.org/download_jmeter.cgi
zip安装包:
https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.3.zip
JMeter
1.使用步骤
1.1.添加线程组
线程属性值含义:
线程数:200
Ramp-Up时间:1【1秒启动200个线程】
循环次数:100【每个线程发送100个请求,一共200*100 = 20000个请求】
1.2.添加取样器
取样器:
表示测试何种请求,这里使用HTTP请求
1.右键线程组=》添加取样器=》HTTP请求=》
2.指定url,端口,参数,请求类型
1.3.添加监听器
察看结果树
查看每次请求是否成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GbninLlh-1683351987723)(/1635426441427.png)]
汇总报告
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o6klOlB6-1683351987724)(/1635426386057.png)]
聚合报告
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xa8EFWp9-1683351987725)(/1635426431409.png)]
2.JMeterAddress Already in use 错误解决
windows帮助文档:
https://support.microsoft.com/zh-cn/help/196271/when-you-try-to-connect-from-tcp-ports-greater-than-5000-you-receive-t
windows本身提供的端口访问机制的问题。
Windows提供给 TCP/IP链接的端口为1024-5000,并且要四分钟来循环回收他们。就导致
我们在短时间内跑大量的请求时将端口占满了。
1.cmd中,用regedit命令打开注册表
2.在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下
1.右击parameters,添加2个新的 DWORD,名字为MaxUserPort、TCPTimedWaitDelay
2.然后双击MaxUserPort,输入数值数据为65534,基数选择十进制(如果是分布式运
行的话,控制机器和负载机器都需要这样操作哦)
3.然后双击TCPTimedWaitDelay,输入数值数据为30,基数选择十进制(如果是分布式运
行的话,控制机器和负载机器都需要这样操作哦)
4.修改配置完毕之后记得重启机器才会生效
3.优化
3.1.影响性能考虑点
1.影响性能考虑点包括:【这里可以从访问顺序来作为链路进行性能调优】
数据库、应用程序、中间件( tomact、gateway、Nginx、)、网络(带宽)和操作系统等方面
2.首先考虑自己的应用属于CPU密集型还是Io密集型,根据jvisualvm查看应用健康情况
CPU:计算、排序、过滤、整合【集群】
IO:网络、磁盘、数据库、redis【内存+缓存+固态+提高网卡的传输效率】
3.监控执行时中间件CPU、内存使用量
docker stats:查看cpu占用、内存使用量、
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5z8AStkD-1683351987726)(/1635429437505.png)]
例如:minorGC每次都能干净释放eden,表示很健康
[外链图片转存失败,源站可能有防盗