gpt4 book ai didi

performance - Tornado AsyncHTTPClient 请求在中等负载下超时

转载 作者:可可西里 更新时间:2023-11-01 16:21:47 37 4
gpt4 key购买 nike

我正在运行一个简单的网络应用程序,它为每个请求使用一些网络服务,我发现我们的服务器发出的请求有时会超时(合成 599 错误),即使其他服务是响应的在任何时候(我已经验证过)。

这些是我收到的错误消息:

HTTP 599: Connection timed out after 7005 milliseconds

(连接超时)

HTTP 599: Operation timed out after 5049 milliseconds with 0 out of -1 bytes received

(接收数据前超时)

HTTP 599: Operation timed out after 10005 milliseconds with 11197 out of 13047 bytes received

(部分传输数据超时)

我已经能够在两个不同的环境中重现这一点,一个是 Amazon EC2 mini 实例,另一个是我的 Macbook Pro (i7)。在 EC2 实例中,超时开始发生在只有 2 个并发客户端发出请求时,Macbook 一直保持到 8 个并发客户端,然后它也开始显示超时。

我已经尝试了一些事情,比如更新 Tornado 版本(2.2、2.3.1、2.4.1 和 3.1.1,如果我没记错的话),将底层 AsyncHTTPClient 实现从默认的简单实现更改为基于 pycurl 和增加异步客户端的数量(到 200),但错误仍在发生。

我不确定我可能做错了什么,因为这看起来根本不像 Tornado 应该提供的 promise 的可扩展性......

有什么提示吗?

更新

郑重声明,我们在异步回调中使用了 memcache,但该库本身并不是异步的。我将其替换为:https://github.com/dpnova/tornado-memcache/

这是我认为的最大问题,尽管我们仍然时不时地得到 599。

最佳答案

听起来您的代码可能在某处阻塞了事件循环(整数秒 - 您是否调用了 time.sleep()?)。尝试使用 IOLoop.set_blocking_log_threshold 查找事件循环被阻塞的位置。

关于performance - Tornado AsyncHTTPClient 请求在中等负载下超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21582226/

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