如何在 Tornado 网络服务器中找到阻塞调用?
How can I find a blocking call inside Tornado webserver?
我们在 Tornado 上有一个服务 运行,它是异步编写的。我怀疑代码中的某处存在会影响性能的阻塞调用。
在 Tornado 中有没有办法找到这个代码段/函数调用?
或者我能找到保持 IOLoop
长于 X 毫秒的代码吗?
谢谢
亚历克斯
在Python3+和Tornado 5+中,设置环境变量PYTHONASYNCIODEBUG=1
。在旧版本的 Tornado 或 Python 中,调用 IOLoop.current().set_blocking_log_threshold(0.5)
.
无论哪种方式,只要调用阻塞超过半秒,就会记录一条消息。
我们在 Tornado 上有一个服务 运行,它是异步编写的。我怀疑代码中的某处存在会影响性能的阻塞调用。 在 Tornado 中有没有办法找到这个代码段/函数调用?
或者我能找到保持 IOLoop
长于 X 毫秒的代码吗?
谢谢
亚历克斯
在Python3+和Tornado 5+中,设置环境变量PYTHONASYNCIODEBUG=1
。在旧版本的 Tornado 或 Python 中,调用 IOLoop.current().set_blocking_log_threshold(0.5)
.
无论哪种方式,只要调用阻塞超过半秒,就会记录一条消息。