Skip to content
Zuoyan Qin edited this page May 21, 2014 · 5 revisions

本文档包括:

  • QPS性能
  • 延迟性能

QPS性能

测试配置

  • RPC请求模式:Request 数据 1 byte(发送字符串”z”); Response 数据 2 byte(返回字符串”OK”)。
  • Server机器配置:CPU 16 core, 50G内存, 千兆网卡。
  • Client配置:多个client进程分布在4台机器上,每个client进程尽自己最大努力并发发送异步请求,接收回复并检查返回值正确性。

测试结果

Server线程数 Client数目 QPS
(万条/秒)
CPU使用情况
(Total 16 cores)
物理内存
(MB)
4 0 0 0.1% us, 0.1% sy, 99.8% id 2.7
4 1 9 7.0% us, 2.1% sy, 90.2% id 11
4 4 30 20.1% us, 4.1% sy, 74.0% id 258
4 8 31 20.4% us, 3.9% sy, 73.2% id 500
4 12 31 19.3% us, 3.8% sy, 73.9% id 743
8 1 9 6.8% us, 2.6% sy, 89.9% id 11
8 4 35 29.6% us, 13.5% sy, 53.7% id 202
8 8 47 33.5% us, 11.8% sy, 50.4% id 498
8 12 47 35.1% us, 11.3% sy, 48.3% id 741
12 1 9 7.5% us, 3.0% sy, 88.9% id 12
12 4 26 27.8% us, 29.2% sy, 36.8% id 255
12 8 45 42.6% us, 22.8% sy, 26.7% id 498
12 12 47 44.6% us, 21.1% sy, 26.0% id 740
说明:
  • QPS(万条/秒)是指单server每秒钟处理的请求数目。
  • 测试中使用1字节长度请求数据的原因:千兆网带宽的传输上限约为120MB/s,在请求的数据量较大的时候很轻易被压满;只有将每次请求的数据设为足够小,使得带宽不成为瓶颈时,异步事件的处理速度才会成为瓶颈,才能测出QPS极限值。
  • 以上性能测试是在链接了tcmalloc库后的结果。

延迟性能

测试配置

  • RPC请求模式:Request 数据 命令行指定byte数; Response 数据 2 byte(返回字符串”OK”)。
  • Server机器配置:CPU 16 core, 50G内存, 千兆网卡。
  • Client配置:client进程同步发送请求,收到回复后再立即发送下一条数据,计算每次请求从“发送请求前”到“收到回复后”这段时间的间隔。
  • 作为参考:client机器到server机器的ping延迟为0.16毫秒

测试结果

Server线程数 请求数据量
(字节)
延迟
(毫秒)
CPU使用情况
(Total 16 cores)
物理内存
(MB)
4 1 0.22 0.7% us, 0.5% sy, 98.3% id 3
4 500 0.24 0.7% us, 0.5% sy, 98.3% id 3
4 1000 (1KB) 0.40 0.7% us, 0.7% sy, 98.2% id 5
4 10000 0.44 1.1% us, 1.3% sy, 96.8% id 8
4 100000 1.30 1.5% us, 2.1% sy, 94.9% id 9
4 1000000 (1MB) 9.80 1.9% us, 2.5% sy, 93.6% id 14
4 10000000 101.00 2.4% us, 3.0% sy, 92.7% id 56
说明:
  • 此处测出的是Server空闲时的延迟,请求或者回复消息不需要在Pending Buffer中排队。
  • 在Server繁忙的时候,由于CPU资源不足、消息在队列中排队等因素,延迟会有所增加。
  • 以上性能测试是在链接了tcmalloc库后的结果。
Clone this wiki locally