TornadoアプリでサードパーティのAPIをかなり頻繁に使用していますが、他の非効率性を排除した後でも、リクエストごとに300〜600ミリ秒の応答時間が発生しているようです。私の推測では、トルネードは毎回SSL接続を再ネゴシエートしていると思いますが、リクエストの速度低下がどこから来ているのかを洞察する方法がわかりません。
「受信した証明書:100ms」や「サーバーの応答:200ms」など、接続の各フェーズを時間ごとに分類するものを探しています。
私は通常、次のように、同じサーバーに対して複数の非同期リクエストを実行しています。
liked_response, following_response, subscribed_response = \
yield [gen.Task(http_client.fetch, like_request),
gen.Task(http_client.fetch, following_request),
gen.Task(http_client.fetch, subscribed_request)]
Tornadoのネットワークスタックを詳しく調べて、リクエストのどの部分が遅いかを特定するにはどうすればよいですか?