type
status
date
slug
summary
tags
category
icon
password
Sub-item
Last edited time
Oct 29, 2023 03:06 AM
Parent item
领域
TPS
全称: Transaction Per Second. 每秒处理的事务数.
一个事务是指客户端向服务端发起一个请求, 并且等到请求返回之后的整个过程.
【事务】客户端向服务端发起一个请求, 并且等到请求返回之后的整个过程。具体的事务,可以是一个接口、多个接口、一个业务流程等
从客户端发起请求开始计时, 等到收到服务端响应结果后结束计时, 在这个时间段内总共完成的事务个数,称为TPS.
QPS
全称: Queries Per Second. 每秒查询次数, 服务端每秒能够响应的查询次数
RT
全称: ResponseTime. 客户端发起请求到服务端返回的时间间隔,表示平均响应时间.
并发数
表示系统能同时处理的请求个数.并发数量会大于QPS, 因为服务端处理一个请求需要处理时间, 如果一个请求的处理时间是是3s, 那么QPS=1000时,并发量为1000*3=3000.
举例:
假设在10点到11点这一个小时内,有200W个用户访问我们的系统,假设平均每个用户请求的耗时是3秒,那么计算的结果如下:
RT值越大, 占用的系统资源越多, 对服务端的并发连接要求也越高.
举例推断1000w用户的访问量:
- 1000W用户,每天来访问这个网站的用户占到20%,也就是每天有200W用户来访问。
- 假设平均每个用户过来点击50次,那么总共的PV=1亿。
- 一天是24小时,根据2/8法则,每天大部分用户活跃的时间点集中在(240.2)约等于5个小时以内,而大部分用户指的是(1亿点击80%)约等于8000W(PV),意味着在5个小时以内,大概会有8000W点击进来,也就是每秒大约有4500(8000W/5小时)个请求。
- 4500只是一个平均数字。在这5个小时中,不可能请求是非常平均的,有可能会存在大量的用户集中访问(比如像淘宝这样的网站,日访问峰值的时间点集中在下午14:00、以及晚上21.00其中21:00是一天中活跃的峰值),一般情况下访问峰值是平均访问请求的3倍到4倍左右(这个是经验值),我们按照4倍来计算。那么在这5个小时内有可能会出现每秒18000个请求的情况。
- 也就是说,问题由原本的支撑1000W用户,变成了一个具体的问题,就是服务器端需要能够支撑每秒18000个请求(QPS=18000)
TCP资源评估
- 系统支持的最大文件打开数量
- TCp连接最小占用内存
一个tcp连接需要1个读缓存区,和1个写缓存区, 默认大小是4k+4k=8k. 如果内存大小事8G, 在理想情况下大概可以额支持100万的tcp连接.
- 根据QPS决定部署多少台服务器
通过nginx进行负载均衡, nginx的静态文件并发达到5w/s.
- 根据响应时间计算并发量. 并发量=RT*QPS
数据库资源评估
按照每个请求平均查询3次数据库计算, 如果QPS=18000, 那么数据库的QPS达到54000, 如果一台数据库支持10000QPS, 那么需要6台数据库支撑18000个请求.