gpt4 book ai didi

python - 加速套接字发送行为(在 Python 中)

转载 作者:行者123 更新时间:2023-12-01 06:08:38 25 4
gpt4 key购买 nike

我有一个脚本,每秒向服务器发送 5-10 个请求。我最重要的要求是每秒的请求限制。它必须始终是具体数字,不能多也不能少。为此,我在给定的时间间隔后发送请求(减去发送上一个请求所需的时间)。

问题:某些请求发送得足够快,但其他请求在 sock.sendall() 步骤上花费了太多时间。我相信这是因为发送缓冲区已满并且执行被阻止,直到缓冲区被清除。

我可以做什么来更快地刷新缓冲区?

我尝试的选项之一是禁用 Nagle:

sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)

但它似乎并没有改善情况。

另一个听起来太错误而无法尝试的选项是在每次 sendall() 调用之前将发送缓冲区设置为请求的长度。

我能做些什么来每秒获得更多可预测的请求吗?

我刚刚想到的另一个选择:有多个进程,每个进程每秒执行少量请求,希望这将使结果更加可预测。

有问题的操作系统是 Centos。

更新:看来我在连接后设置套接字选项时出错。看起来缓冲区大小只能在 connect() 调用之前设置。与 TCP_NODELAY 相同。还没有时间测试它是否有任何区别。

最佳答案

The most crucial requirement i have is a limit of requests per second. It must always be the specific figure, not more and no less.

该要求通过 TCP 完全无法实现。您还需要对等点的服务时间进行实时保证。

关于python - 加速套接字发送行为(在 Python 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6880483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com