Как я могу найти блокирующий вызов внутри веб-сервера Tornado? - PullRequest
0 голосов
/ 09 мая 2018

У нас есть служба, работающая на Tornado, она написана асинхронно. Я подозреваю, что где-то в коде есть блокирующий вызов, который снижает производительность. Есть ли способ в Торнадо найти этот раздел кода / вызов функции?

Или я могу найти код, который содержит IOLoop длиннее X мс?

Спасибо

Alex

1 Ответ

0 голосов
/ 09 мая 2018

В Python 3+ и Tornado 5+ установите переменную среды PYTHONASYNCIODEBUG=1. В старых версиях Tornado или Python вызывайте IOLoop.current().set_blocking_log_threshold(0.5).

В любом случае, это приведет к тому, что сообщение будет зарегистрировано, когда вызов блокируется более чем на полсекунды.

...