文章目录
【笔记于学习尚硅谷课程所作】
1、压力测试
1.1 基本介绍
压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。
使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误.有两种错误类型是:
内存泄漏,并发与同步。
有效的压力测试系统将应用以下这些关键条件:重复,并发,量级,随机变化。
性能指标:
- 响应时间(Response Time: RT ):响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。
- HPS (Hits Per Second) :每秒点击次数,单位是次秒。
- TPS (Transaction per Second) :系统每秒处理交易数,单位是笔/秒。
- QPS (Query per Second) :系统每秒处理查询次数,单位是次/秒。
- 最大响应时间(Max Response Time):指用户发出请求或者指令到系统做出反应(响应)的最大时间。
- 最少响应时间(Mininum ResponseTime):指用户发出请求或者指令到系统做出反应(响应)的最少时间。90%响应时间(90% Response Time)是指 所有用户的响应时间进行排序,第90%的响应时间。
从外部看,性能测试主要关注如下三个指标
- 吞吐量:每秒钟系统能够处理的请求数、任务数。
- 响应时间:服务处理一个请求或一个任务的耗时。
- 错误率: 一批请求中结果出错的请求所占比例。
1.2JMeter的安装与使用
(1)安装
1.在官网下载安装包,直接解压即可
2.打开/bin目录,打开jmeter.bat(启动)
3.进入可视化界面后,在菜单栏点开Options–>Choose Language选择Chiese(Simplified),将界面变成中文
(2)使用
1.设置测试
2.设置线程组参数
3.设置HTTP请求参数
4.启动,在启动前清扫上次测试的结果(避免影响本次测试)
5、第一次启动,需要先保存测试
1.3 JMeter Address Already in use错误解决
windows本身提供的端口访问机制的问题。
Windows提供给TCP/IP 链接的端口为1024-5000, 并且要四分钟来循环回收他们。就导致我们在短时间内跑大量的请求时将端口占满了。
解决:
- cmd中,用regedit命令打开注册表
- 在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下
- 右击parameters,添加一个新的DWORD,名字为MaxUserPort,值为65534(十进制)
- 右击parameters,添加一个新的DWORD,名字为TCPTimedWaitDelay,值为30(十进制)
- 修改配置完毕之后,重启机器才会生效
2、性能监控
2.1 jvisualvm:监控项目的堆的使用情况
进入cmd输入jvisualvm进入
(1)插件下载问题,打开工具–>插件–>检查更新(报错)
打开http://visualvm.github.io/pluginscenters.html,找到和自己jdk符合的版本,进入链接
解决一:将最上面的链接复制,在插件的设置里编辑并修改原URL
解决二:如果上面的方法还是解决不了,在刚才的打开的网页,找到相应的插件,手动下载,在jvisualvm的插件里寻找以下载的插件,安装
(2)找不到本地程序可参考解决办法
2.2 监控docker容器的使用状况
docker status
3、优化
- 减少不必要的中间件的使用
- 开启模板缓存
- 将静态资源动静分离
- 关闭不必要的日志
- 优化数据库(加索引)
- 优化业务逻辑
- 调整jvm的内存设置(在VM options设置项目的规定数据)
- -Xmx 1024m :设置最大内存
- -Xms 1024m :设置内存(固定)
- -Xmn 512m :设置新生代内存