如何测试一台服务器在lnmp环境下,可以承受多少qps,tps,iops
我用的是jmeter,写的不够专业请见谅,基本就是在一定时间内发起若干个并发连接,然后每个连接执行一次登陆操作和查询操作,对返回结果进行成功或失败判断。最终得出一个结论,比如我得到的是:
样本数量:5500;
平均连接时间:21毫秒;
95%的样本连接时间低于33毫秒;
错误率:0%;
服务器吞吐量:每秒544次;
数据流量:每秒30053KB。
当然也可以用其他软件,不过大部分都是linux下的,windows下不多,我只试用过一个pylot,需要python支持,相对jemter功能更加简单,不过设置也简单。
区别:TPS是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。QPS是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。理解:系统整体处理能力取决于处理能力最低模块的TPS值。QPS是每秒的响应请求数,也即是最大吞吐能力。
TPS即每秒处理事务数,包括:”用户请求服务器”、”服务器自己的内部处理”、”服务器返回给用户”,这三个过程,每秒能够完成N个这三个过程,TPS也就是3。QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS,但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入QPS之中。
访问一个页面会请求服务器3次,一次放,产生一个“T”,产生3个“Q”。
Apache服务器也就是www服务器,由于www采用HTTP协议所以又称为HTTP服务器,用于静态页面的解析;而Tomcat服务器是应用(Java)服务器,可以说是一个Servlet容器,可以认为是Apache的扩展,本身包含了一个HTTP服务器。但是可以独立于Apache运行,主要用于动态页面提供服务,可以将JSP编译成对应的Servlet,所以是web应用服务器。
QPS = req/sec = 请求数/秒
QPS计算PV和机器的方式
QPS统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 请求时间 )
QPS: 单个进程每秒请求服务器的成功次数
单台服务器每天PV计算
公式1:每天总PV = QPS 3600 6
公式2:每天总PV = QPS 3600 8
服务器计算
服务器数量 = ceil( 每天总PV / 单台服务器每天总PV )
峰值QPS和机器计算公式
原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:( 总PV数 80% ) / ( 每天秒数 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 08 ) / (86400 02 ) = 139 (QPS)
问:如果一台机器的QPS是58,需要几台机器来支持?
答:139 / 58 = 3
吞吐量:系统在单位时间内处理请求的数量。只不过是一个很宽泛的术语,大家经常指的吞吐量的单位可能是:TPS/QPS、页面数/秒、人数/天、处理业务数/小时等等。
几个相关的概念:TPS、QPS、RPS
TPS:Transactions Per Second(每秒事务处理数),指服务器每秒处理的事务次数。一般用于评估数据库、交易系统的基准性能。
QPS:Queries Per Second(查询量/秒),是服务器每秒能够处理的查询次数,例如域名服务器、Mysql查询性能。
RPS:Request Per Second(请求数/秒)
RPS(Request Per Second)和QPS可以认为是一回事。
RT:Response Time(响应时间):客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间,响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。也叫Think Time。
并发数与TPS/QPS的关系:
QPS(TPS)= 并发数/平均响应时间
这里的并发数如果为事务处理请求数,则为TPS,如果为查询请求数,则为QPS。
QPS每秒查询率(Query Per Second)
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。
关于 QPS、TPS、PV、UV、GMV、IP、RPS 这些词语,看起来好像挺专业。但实际上,我认为是这是每个程序员必懂的知识点了,你可以搞不懂它们怎么计算的,但是你最少要了解它们分别代表什么意思。
2019年12月09日 - 初稿
阅读原文 - https://wsgzaogithubio/post/qps/
扩展阅读
Queries Per Second,每秒查询数。每秒能够响应的查询次数。
QPS 是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。每秒的响应请求数,也即是最大吞吐能力。
Transactions Per Second 的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。
TPS 的过程包括:客户端请求服务端、服务端内部处理、服务端返回客户端。
例如,访问一个 Index 页面会请求服务器 3 次,包括一次 html,一次 css,一次 js,那么访问这一个页面就会产生一个 “T”,产生三个 “Q”。
Page View 即页面浏览量,通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。户每一次对网站中的每个页面访问均被记录 1 次。用户对同一页面的多次刷新,访问量累计。
根据这个特性,刷网站的 PV 就很好刷了。
与 PV 相关的还有 RV ,即重复访问者数量 Repeat Visitors。
访问数(Unique Visitor)指独立访客访问数,统计 1 天内访问某站点的用户数 (以 cookie 为依据),一台电脑终端为一个访客。
(Internet Protocol)独立 IP 数,是指 1 天内多少个独立的 IP 浏览了页面,即统计不同的 IP 浏览用户数量。同一 IP 不管访问了几个页面,独立 IP 数均为 1;不同的 IP 浏览页面,计数会加 1。IP 是基于用户广域网 IP 地址来区分不同的访问者的,所以,多个用户(多个局域网 IP)在同一个路由器(同一个广域网 IP)内上网,可能被记录为一个独立 IP 访问者。如果用户不断更换 IP,则有可能被多次统计。
是 Gross Merchandise Volume 的简称。只要是订单,不管消费者是否付款、卖家是否发货、是否退货,都可放进 GMV 。
代表吞吐率,即 Requests Per Second 的缩写。吞吐率是服务器并发处理能力的量化描述,单位是 reqs/s,指的是某个并发用户数下单位时间内处理的请求数。
某个并发用户数下单位时间内能处理的最大的请求数,称之为最大吞吐率。
0条评论