【发布时间】:2013-05-18 13:13:12
【问题描述】:
我目前正在开发一个带有服务器的系统,它获取一些客户端的任务并处理它们。
由于我需要高吞吐量,我检查了 1Gbit 网络中往返/秒的速度。
场景:
- 客户端有一个 Dealer 套接字并向服务器发送任务,服务器通过路由器套接字 (TCP-Connection) 接收任务
- 服务器将任务转发到一个工作线程(经销商 - 通过 INPROC 的经销商)
- 工作线程处理任务并以相同的方式发回响应
我在 16 台机器上使用了 16 个客户端作为基准测试。
基准 1:(没有工人,服务器将消息直接发送回客户端) 结果:
- 1B-消息:143540,67 RT/s(RT = 往返)
- 10B-消息:140160,72 RT/s
- 100B-消息:129634,43 RT/s
- 500B-消息:120977,5 RT/s
- 1024B-消息:107983,59 RT/s
基准 2:(有 10 个工人,服务器只是充当代理)
- 1B-消息:92873,51 RT/s(RT = 往返)
- 10B-消息:81619,33 RT/s
- 100B-消息:83606,02 RT/s
- 500B-消息:75229,45 RT/s
- 1024B-消息:63648,32 RT/s
来源:
有人可以帮助我确定为什么 TP 下降这么多,只需添加一个带有一些工作线程的 inproc-roundtrip 吗?我真的期望工作线程的 TP 更高。 ZMQ Inproc 性能不是那么快吗?
【问题讨论】:
标签: performance zeromq inproc