✅一个接口3000QPS,接口RT为200MS,预估需要几台机器?

典型回答

要估算需要多少台机器来支持一个接口的QPS和RT,需要考虑多个因素,包括机器的性能、并发连接数、负载均衡、缓存等。

如果接口RT为200ms,那么我们可以计算知道,单台机器单个线程一秒钟的吞吐量:

单线程吞吐量 = 1000ms / RT

单线程吞吐量 = 1000ms / 200ms = 5请求/秒

这表示每台机器的每个线程每秒最多可以同时处理5个请求。

那么,假设我们的web服务器是tomcat,默认有200个线程,那么他一秒钟的吞吐量就要再乘以200:

单机吞吐量:5 * 200 = 1000

那么,根据这个吞吐量来计算的话,如果要抗3000的QPS,那么就需要:

3000/1000 = 3台机器。

但是,以上这个计算完全理想化了,完全忽略了CPU、内存、Load等硬件的情况。因为随着并发量的升高,应用的CPU、内存、磁盘等等各种硬件配置的使用情况也是在不断攀升的。

所以实际在预估的时候,需要在单机上进行压测,根据压测结果来预估需要多少台机器。

✅什么是压测,怎么做压测?

最理想的情况是需要3台机器,但是实际情况的话基本上会比这个要多一些,所以大致预估就是按照他的2-3倍来算的话,就是6-9台机器。

原文: https://www.yuque.com/hollis666/xkm7k3/sskc5wha1fx7odc1