首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python&zeroMQ --处理大型消息的能力?

Python&zeroMQ --处理大型消息的能力?
EN

Stack Overflow用户
提问于 2011-07-15 01:29:40
回答 1查看 3.7K关注 0票数 1

我想使用python构建一个类似于[医]呼吸器/洗涤槽方案的应用程序

假设我们有10 Worker,它们都运行在同一个多核服务器上。

假设每2秒左右,每个工作者Sink推送大小为5MB的消息。因此,Sink必须每2秒总共处理50MB

如果10位Worker在不同的机器上,我知道网络可能是一个潜在的瓶颈。

如果10个Worker必须将他们的数据写入磁盘(I/O),我知道磁盘可能是一个潜在的瓶颈。

考虑到所有10 Worker都是上的相同的机器,那么应该期望哪些瓶颈呢?

例如,同一个10 Worker是否可以每2秒左右推送一条大小为10 so的消息?他们能每2秒推一条大小为20 or的消息吗?

zmq的局限性是什么?

pythonzeroMQ环境中使用Linux环境时,应该期望什么样的瓶颈类型?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-15 01:54:57

使用同一台服务器上的PUSH/PULL,我可以最大限度地写入raid数组@400 max /秒(以写入速度为瓶颈)。有10 are基准测试结果这里。我建议构建一些简单的基准,性能将取决于许多因素,如消息格式、大小等。

例如,一个完全微不足道的基准测试显示,zeromq能够在我的机器上发送100条10 my消息( 12.3毫秒):

代码语言:javascript
运行
复制
# server
import zmq

context = zmq.Context()
reciever = context.socket(zmq.PULL)
reciever.bind('tcp://127.0.0.1:5555')

while True:
    reciever.recv()

# client
import os, zmq

context = zmq.Context()
pusher = context.socket(zmq.PUSH)
pusher.connect('tcp://127.0.0.1:5555')

message = ' ' * 10485760

>>> %timeit pusher.send(message)
100 loops, best of 3: 12.3 ms per loop
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6701819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档