forked from baidu/sofa-pbrpc
-
Notifications
You must be signed in to change notification settings - Fork 0
Zuoyan Qin edited this page May 21, 2014
·
5 revisions
本文档包括:
- 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库后的结果。