转载:https://blog.csdn.net/u014102846/article/details/82591343
1.名词解释
DAU:Daily Active User,日活跃用户数量,DAU通常统计一日(统计日)之内,登录或使用了某个产品的用户数(去除重复登录的用户)。
MAU: 月活跃用户量,通常DAU会结合MAU(月活跃用户数量)一起使用,这两个指标一般用来衡量服务的用户粘性以及服务的衰退周期。
pv:page view,即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。
uv:unique visitor,指访问某个站点或点击某条新闻的不同IP地址的人数。在同一天内,uv只记录第一次进入网站的具有独立IP的访问者,在同一天内再次访问该网站则不计数。
QPS:Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS:Transactions Per Second,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
CTR:Click-Through-Rate,点击通过率。把一个网站所有搜索出来的次数作为总次数,把用户点击并进入网站的次数占总次数的比例叫点击率。CTR=实际点击次数/展示量,即 Click / Show content。
2.指标
举例:页面预估量级为日活DAU100W,以100%DAU计算,人均刷新10次,日均访问时间定在8小时, log 机器6台,ctr 预估为0.1
平均QPS= 100W DAU * 10 / (8h * 3600s) = 347, 峰值QPS = 均值 347 * 2 = 700,或者自定义峰值QPS与均值的比例
若一次刷新的点击率为0.1 ,则平均QPS= 347 * 0.1
3.测试流程
流量预估—》性能需求分析—》方案设计—》压测执行—》结果分析—》是否通过—》通过—》编写报告
3.1流量评估:
参与人员:业务方、产品、研发
评估方法:日PV=日UV*UV点击率*偏好系数,TPS(QPS)=PV/second
3.2性能需求分析:
测试范围(明确性能点及链路)—》性能点(分析生产环节/设计方案中有关的性能点数据:机器数、PV量、RT等)—》性能预期(分析预期的性能点数据:TPS、RT、CPU、Load等)
3.3方案设计:
系统网络拓扑(从网络拓扑得出性能测试环境网络部署方案)—》测试准备(性能测试环境搭建、测试数据准备:压测数据+业务数据(数据库里的索引、表结构要聚拢)、测试工具选用)—》测试策略(采用何种方法进行测试:是否带缓存、混合压测、单场景压测)—》测试执行和监控(编写性能测试脚本、执行时长、监控哪些数据)
3.4压测之行:
选取可用的压测工具
3.5结果分析:
基本指标:TPS(==QPS)transaction per second,rt(response time,一般会要求核心接口的rt<20ms, 非核心<30ms,http请求 <500ms)、 VU(virtual user)并发、TPS波动(关注TPS是否稳定,大幅波动可能有问题,如突然降低是否有GC)
服务器指标:CPU、Load、I/O
JVM:Memory、GC
4.监控分析基本命令
4.1Linux基本命令:
tail,grep,netstat -anp|grep,ps -ef|grep java
4.2监控CPU:
cpu 使用率(usr,sys,wa,idle)& 核数
命令:
查看逻辑CPU的个数:cat /proc/cpuinfo |grep 'processor'|wc -l,参考: https://blog.csdn.net/dongfang1984/article/details/53841621
查看系统负载:top 命令,参考:https://www.cnblogs.com/lovychen/p/5237852.html,也可以用top +1查看核数
查看CPU使用率,内存使用vmstat,参考:https://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html
单独查看系统某个局部的使用情况,sar,参考:https://blog.csdn.net/sclcy/article/details/51066077
查看指定java进程ID或core file或远程调试服务的Java堆栈信息,jstack,参考:https://www.cnblogs.com/wspblog/p/4651971.html
4.3监控Memory:
free、 buff、 cache、 swpd 80%安全
命令:free -m,top,vmstat,sar -r
JVM:jstat -gcutil <pid>:统计gc信息,参考: https://blog.csdn.net/zhaozheng7758/article/details/8623549
4.4监控磁盘disk:
磁盘占用、io读写(IOPS、吞吐量、%util、%iowait)
命令:
df -h,iostat -x
4.5监控网络:
网络监控需关注丢包、延迟、阻塞、冲突等情况
命令:
ping(检查网络是否可达),traceroute (Linux需要安装),sar -n DEV,tcpdump(https://blog.csdn.net/s_k_yliu/article/details/6665673/)
5.测试通过标准