前端时间进行了一次性能测试
一、上概念
TPS
TPS:Transactions Per Second,意思是每秒事务数,具体事务的定义,都是人为的,可以一个接口、多个接口、一个业务流程等等。一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程,以此来计算使用的时间和完成的事务个数。
以单接口定义为事务为例,每个事务包括了如下3个过程:
a.向服务器发请求
b.服务器自己的内部处理(包含应用服务器、数据库服务器等)
c.服务器返回结果给客户端
如果每秒能够完成N次这三个过程,tps就是N;
如果多个接口定义为一个事务,那么,会重复执行abc,完成一次这几个请求,算做一个tps。
QPS
QPS:Queries Per Second,意思是每秒查询率,是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数),显然,这个不够全面,不能描述增删改,所以,不建议用qps来作为系统性能指标。
区别
如果是对一个查询接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么tps=qps,否则,tps≠qps
如果是容量场景,假设n个接口都是查询接口,且这个接口内部不会再去请求其它接口,qps=n*tps
jmeter聚合报告中,Throughput是用来衡量请求的吞吐量,也就是tps,tps=样本数/运行时间
如果没有定义事务,会把每个请求作为一个事务
我的建议
QPS是Query Per Second,是数据库中的概念,每秒执行条数(查询),被引申到压测中来了,但是不包括插入、更新、删除操作,所以不建议用qps来描述系统整体的性能;
建议用tps,这个t,你可以随意的定义,可以是一个接口,也可以是一个业务流程等等。
二、常用操作
top命令 top命令是最常用的服务器性能监控命令,登入后台执行top命令后,会定时刷新输出服务器资源占用情况。
针对CPU负载,我们一般只需要关注两处参数,load average和进程占用CPU时间比。 load average即系统负载,输出了1分钟、5分钟、15分钟前到现在的任务队列平均值,一般情况下load average值不超过服务器CPU核数,就说明进程没有排队现象,如超过CPU核心数量,则说明服务器压力偏高,会出现服务响应慢或不可用的现象(比如4C8G的服务器,如果load average值超过4,则说明服务器压力偏高)。
查看服务器核数可使用以下命令: cat /proc/cpuinfo |grep "processor"|sort -u|wc -l
比如:
然后记录cpu使用,内存占用,网络宽带占用,吞吐量,还有样本总数,每个请求响应时间消耗平均值
然后逐步加压直至服务器或者数据库宕机。
总结报告。
结束。