我有两台Windows机器,在这两台机器中,我试图从一台到另一台发送3k ZMQ消息。这些都是相当现代的系统(双四核Xeon与5100芯片组和双十六进制核心Xeon与5500芯片组),服务器级英特尔千兆以太网卡。
这两台机器是点对点连接的,中间没有交换机或路由器。
通过pcttcp进行性能比较,我可以通过TCP将70 am /s (56%的利用率)从一台计算机发送到另一台计算机。使用ZMQ推/拉,我只能在两者之间得到~28 ZMQ/s。
当发送者和接收者在同一台机器上(这两台机器的速度较慢)时,我能够达到97 of /s的速率。(在双六角核中为220 of /s)。
推挽通道两端都设置了HWM。如果将HWM大小设置为低(大约150条消息),而不是更大的值(如1024 ),则它的性能会稍微好一些。
我试过6000字节的巨型帧,结果更糟。(pcttcp的表现略好于@72 marginally /s)
我尝试将TcpWindowSize设置为更大的值,但它似乎也变得更糟了。ZMQ喜欢较低的尺寸,pcttcp没有改变。TcpWindowSize现在设置为32K
其他参数:
的情况下不能工作
我该怎么接近找到瓶颈呢?对于TCP和ZMQ性能,我应该期望实现什么?ZeroMQ网站性能部分详细介绍了吞吐量接近TCP (95%+)的测试。
任何性能提示/智慧(除了使用linux ;-)都将是非常感谢的。
谢谢!
另一条线索:如果我在两个系统(相同的方向,不同的端口)之间设置多个发送/接收对,那么我就能够获得更高的发送/接收速率。(总数为42 of /s,3兆字节)
发布于 2012-04-18 07:10:28
一个快速的google把这个推到http://comments.gmane.org/gmane.network.zeromq.devel/10089上
这个线程的核心是TcpDelAckTicks:引号
I在将TcpDelAckTicks注册表值设置为在服务器代码中执行"apr_socket_accept()“-call的计算机后,性能有了很大提高(2.4秒到0.4秒)。客户端只发送请求并等待循环中的响应。业绩没有变化。
我到那里的原因是因为我在寻找MTU周围的一些东西,认为这可能与网络有关。
然后我找到了这个http://lists.zeromq.org/pipermail/zeromq-dev/2010-November/007814.html,它有许多性能优化建议(不是xp),我不会在这里总结,因为它几乎是一个直接的复制和粘贴(不确定我是否可以更简洁)。
我不确定这会有什么用,但你可能没发现。
https://stackoverflow.com/questions/10032228
复制相似问题