在日常工作中经常需要去做一些系统优化相关的容量评估,核心是用 Little 定律 把吞吐量、响应时间和并发数联系起来:

并发数 = 系统吞吐量 * 任务平均执行时间

系统吞吐量的计算方式为,任务数量除以任务执行时间(单位时间内完成的任务数,即 QPS/TPS):

吞吐量 = 任务数量 / 任务执行时间

常见中间件吞吐参考

以下是单机、典型硬件、简单负载下的经验量级,实际值会因 CPU/内存/磁盘/网络、payload 大小、是否持久化、是否跨机房等差一个数量级,用来估容量和反推并发数够用。

中间件 典型吞吐 说明
Redis 10 万 ~ 20 万+ QPS 纯内存 GET/SET,本地网卡、小 value;开启 AOF/大 value/复杂命令会明显下降
MySQL 读 5k ~ 2 万 QPS;写 1k ~ 5k TPS 主键点查 + 连接池 + SSD;复杂 JOIN/全表扫描可能只有几百 QPS
PostgreSQL 与 MySQL 同量级 简单点查几千~上万;复杂分析查询更低
Kafka 单分区 1 万 ~ 10 万+ msg/s 小消息(几百字节);更常按 MB/s 看,单 broker 常见几十 ~ 几百 MB/s
RabbitMQ 2 万 ~ 5 万 msg/s 小消息、内存队列;持久化、镜像队列会降很多
Nginx 静态 5 万 ~ 10 万+ req/s 反向代理/带 upstream 常见 2 万 ~ 5 万 req/s
Elasticsearch 写入 5k ~ 5 万 doc/s bulk 写入较高;聚合/全文检索视复杂度而定
MongoDB 简单读 1 万 ~ 5 万 QPS 索引点查;写通常更低
Memcached 20 万+ QPS 比 Redis 略高(功能更少)
业务 HTTP 服务 单实例 1k ~ 1 万 QPS 含 DB/缓存/下游 RPC;纯内存计算可更高