我已经实现了一个Tornado网络服务器来处理来自另一个PHP网络服务器的请求。 php请求将导致在响应之前进行一些简单而一致的数据处理。但是,当我查看日志时,我会定期看到响应时间的峰值。例如:
INFO:tornado.access:200 POST /v1/conversion/ (192.168.21.247) 3.33ms
INFO:tornado.access:200 POST /v1/conversion/ (192.168.21.222) 3.43ms
INFO:tornado.access:200 POST /v1/conversion/ (192.168.21.247) 3.55ms
INFO:tornado.access:200 POST /v1/conversion/ (192.168.21.222) 3.36ms
INFO:tornado.access:200 POST /v1/conversion/ (192.168.21.247) 58.56ms
INFO:tornado.access:200 POST /v1/conversion/ (192.168.21.222) 3.22ms
INFO:tornado.access:200 POST /v1/conversion/ (192.168.21.222) 3.20ms
INFO:tornado.access:200 POST /v1/conversion/ (192.168.21.247) 3.28ms
INFO:tornado.access:200 POST /v1/conversion/ (192.168.21.222) 3.34ms
我在php请求(100ms)上有一个相对紧张的超时窗口,并且偶尔会触发它。到目前为止,我一直无法确定原因。
到目前为止我采取的一些步骤:
如果有任何其他信息有帮助,请告诉我,我会尽力提供。感谢您的帮助!
答案 0 :(得分:0)
IOLoop.set_blocking_log_threshold
是调试这类问题的工具之一。调用IOLoop.current().set_blocking_log_threshold(0.010)
,只要有任何东西阻塞IOLoop超过10毫秒,它就会记录一个堆栈跟踪。