性能需求分析::
1:需求分析关键字:
- 系统用户:注册此系统的总用户量
- 在线用户:在某段时间内登录且在线的用户
- PV:用户/游客浏览页面的次数一个用户可以浏览多个页面
- UV:登录系统的用户,UV可产生多个PV,:PV指的用户可以浏览多个页面
- 性能测试:测试软件在系统中的运行性能,度量系统与预定义目标的差距
- 负载测试:是性能测试的一种,通过逐步增加系统负载,确定在满足性能指标的情况下,被测系统最大所能承受的负载量
- 压力测试:是性能测试的一种,通过逐步增加系统负载,确定在什么情况下系统失效,测试系统承受压力的极限
- 容量测试:是性能测试的一种,通常和数据库有关,通常提前测试数据库达到某W行后系统的性能
- 稳定性测试:系统在某个长的时间段,不断有压力,查看系统指标是否异常,系统是否会奔溃
2:需求分析指标
- tps:表示每秒服务器处理的事物数/业务数,还有一种叫法叫:每秒系统吞吐量
- 事物成功率:一段时间内成功的请求在总请求数中的占比
- 事物失败率:一段时间内失败的请求在总请求数中的站比
- rt:表示服务器处理每个请求的响应时间,原则2s-5s-8s
- 总并发用户数:同一时间访问系统上的用户总量,这些用户会分布在不同的功能模块上,比如三个用户同时登录系统
- 总并发请求数:同一时间访问系统的用户同时想服务器做出的请求数量,比如上面三个用户登录系统,但是请求了不同模块,一个用户请求了5个那就是15
- 总并发线程数:指压力测试工具用的线程数量
案例
1:案例

2:案例

3:案例

扩展知识
- 网络带宽:一般公司就会买1G的网络带宽,除以8等于125M,查看带宽看在浏览器上面F12查看请求返回的带宽,如果这次请求用了5kb那计算方式就是:125M=125000kb,125000/5=25000那么得出结论,当前这个请求最大并发就是25000并发
- **静态请求,动态请求:**静态请求是,html,js,cs,jpg这种请求,动态请求是java程序,redis/db数据库,静态请求一般不用进行压测,应为一般公司为了提高用户体验,都会在蓝汛购买cdn机器用来上传静态请求的文件,相当于第三方来进行管控
性能需求分析总结:
- 静态资源不压测
- 动态资源需要压测
- tps先分析出,需要介入28原则
- rt和事物错误率与产品或领导人员确认
- 总并发线程数可先用1个线程做基准得出每秒tps,然后逐渐增加来达到总的tps数量
性能测试计划:
- 版本历史
- 相关文档
- 项目背景
- 入口标准(被测系统的架构图)+被测系统的软件配置
- 测试内容(就是测试什么接口)
- 测试场景(单接口)(全链路混合场景)
- 角色和职责
- 测试计划(就是每个场景需要的工作时间)
- 出口标准(就是成功的标准是什么就是最终的效果)
- 风险
中间键监控:
nginx监控:
手工监控
- nginx所在的机器上面安装zabbix-agent客户端
- 编写nginx监控的脚本,此脚本通过nginx服务器发送命令:/usr/bin/curl "http://localhost:80/status/通过grep,awk来进行命令结果的提取,分别有:
| 方法名 | 方法表示 |
|---|
| accepts | 总共处理了多少个连接 |
| handled | 成功创建多少握手 |
| requests | 总共处理了多少个请求 |
| Reading | 读取到客户端的Header信息数,表示正处于接收请求状态的连接数 |
| Writing | 返回给客户端的Header信息数,表示请求已经接收完成,且正处于处理请求或发送响应的过程中的连接数 |
| Waiting | 开启keep-alive的情况下,这个值等于active - (reading + writing),意思就是Nginx已处理完正在等候下一次请求指令的驻留连接 |

- 添加nginx监控配置文件,UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1此行意思是:接收nginx.status[*]接收*号的参数,并通过参数传入到nginx_status.sh这个脚本中,通过脚本识别出传入的方法
- 配置zabbix_agentd.conf,中配置:lnclude=nginx.conf路径+文件,这样配置后zabbix客户端启动后就可以加载这个配置文件到内存中,直接可以进行访问
- 重启zabbix客户端,zabbix server进行测试,zabbix_get -s ip -p 10050 -k “nginx.status[accepts]”:传入这个方法让脚本执行这个方法,得到zabbix客户端总共处理了多少个请求数
- zabbix服务端,上传该客户端服务器的nginx监控模本,添加后可进行监控客户端机器的nginx

总结: nginx因为模版中有键值会执行脚本方法,系统指标采集是应为zabbix agent底层有对应的代码可以采集

自动化监控:
前提:准备推送机,zabbix-agent机器(安装nginx),zabbix-server机器
1:脚本:
- 把相关文件同步到远程机器上资源目录:/root/tools/shell/nginx/monitor
- 脚本目录:/root/tools/shell/nginx/remote/remote_create_and_zabbix_agent_config/这个脚本功能是:安装zabbix-agent,配置zabbix-agent,启动zabbix-agent
- 手动上传nginx监控的模版
- 手动执行60上面的第一个脚本
监控tomcat jvm:
手工监控
- 前提准备:81,101部署的是tomcat,60作为推送机
- 安装zabbix-agent客户端,及配置上报数据
压力机总结:
上面的案例3进行压力机准备