如何计算特定 QPS(每秒查询数)需要多少台服务器

Cri*_*los 6 architecture system-design

粗略计算:\n想象一下,我有一些要求,经过一些计算,我发现我的服务器每秒会收到大约 100k 请求。我需要多少台服务器?假设\xe2\x80\x99s 表示服务器有 32 个 CPU,每个请求需要 100ms

\n

谢谢

\n

Kar*_*uru 12

这取决于请求的类型和系统架构。您还需要进行少量的迭代压力测试、分析测试,以针对现有的各种用例测量系统的各种参数,以查看所有性能指标是否在您的预期限制内,以获得更合适的实际数据。

如果请求受 CPU 限制,则可以使用以下通用公式:

每秒最大请求数 = CPU 核心数 / 平均请求(任务)时间(秒)

如果您的服务器有 32 个 CPU 核心,并且每个任务消耗 100 毫秒,那么您可以预期 CPU 每秒处理大约 32 个 CPU 核心/0.1 秒 = 320 个请求。

如果请求是内存限制的,则可以使用如下通用公式:

每秒最大请求数 = (总 RAM / 工作内存) * (1 / 任务时间)

如果总 RAM 内存为 16Gb,工作进程/进程内存消耗为 40Mb,任务消耗 100ms,那么您预计 CPU 可以处理的最大请求数应为每秒 4000 个请求。

您可以使用Apache Jmeter等验证工具,该工具具有用于执行步骤模拟的规定、用于 RPS 生成的插件(如吞吐量整形计时器)以及用于分析和决策的仪表板视图。


Cos*_*iță 3

您需要对单个服务器进行性能测试,看看它支持多少RPS,然后您就会得到答案。您还需要考虑在服务器前面添加一个负载均衡器,它将请求分派到所有服务器(也许以循环方式)。