基本概念
我们先要有一个基本概念:PV 、 UV 、 QPS、RT
PV:Page View 页面访问量,用户每一次对网站中的每个页面访问均被记录 1 次。用户对同一页面的多次刷新,访问量累计。
UV:Unique Visitor 独立访客,1天内访问某站点的用户数。
QPS:Query Per Second 每秒请求数(服务器在一秒的时间内处理了多少个请求) 简明公式:QPS = req/sec = 请求数/秒。
RT:Response Time,一个请求的响应时间。
需要的机器数量 = 峰值时间每秒QPS / 单台机器的QPS
C端的链路一般都很长,因为经常需要各种RPC,所以我们的服务只是链路中的一环。为了用户体验,我们就先假设,整条链路RT是1S,超过就熔断,而链路的每环一般都不会超过10个环节。所以一般来说某一个环节最长只能到100ms
我们去掉请求和响应的网络io,粗略70ms,也就是说在70ms内必须要处理完自己的业务逻辑。
假设 x核xG 压测的结果如下:
QPS 为 1000 的情况下,CPU的使用率为35%,内存使用率为25%
QPS 为 1500 的情况下,CPU的使用率为50%,内存使用率为40%
同时,我们需要观察RT时间,如果RT不符合我们所规定的70ms,就需要优化、或者扩容,升配处理了。
我们的cpu使用率不能超过50%,大概会控制在30~40%。互联网的应用都有高低峰的使用时间,比如刷短视频的时间的低峰时间端一般就是晚上的0点~8点左右,其他时间就是高峰期。
假设我们整个服务QPS在高峰时期约30k,需要的机器数量 = 峰值时间每秒QPS / 单台机器的QPS = 30k/1k = 30 台。这样我们就可以先简单的拍定需要30台机器实例。如果上线的时候发现不够,再做扩容或者缩容。