これで髪を抜こうとしています。 RailsアプリをHerokuでホストし、DNSにZerigoFreeを使用しています。アプリは次の場所で入手できます。
ユーザーは断続的に(50回に1回程度のリクエスト)非常に長い読み込み時間(約2分)を経験しており、サーバーログを見てトリアージしようとすると、待機期間が終了するまでリクエストがヒットしないようです。サイトの一般的な読み込み時間は約200〜400ミリ秒です。 NewRelicを使用していますが、サーバーの負荷の問題を示していませんが、ビーコンでエンドユーザーの問題を検出し、今回は「ネットワーク」としてグラフ化します。
FirebugとChrome devtoolsを使用すると、これが自分のマシンで発生したときのタイムラインを確認できます。どちらも、応答までに長い待機時間を示します。これは、Firebugが「DNSルックアップ」として分類し、= Chromeは分類されていないようです。最初の応答が発生した後、サイトの残りの部分は非常に高速に読み込まれます。
問題は、Herokuが割り当てた3つのラウンドロビンIPアドレスの1つが不良であったことでした。彼らは私のサポートリクエストに応えてこれを理解しました。これを追いかけるための方法とツールの提案をしてくれたみんなに感謝します!
これは、DNSプロバイダー(zerigo.net)がDNSサーバーのIPV6レコードを公開しているためだと推測します。 WindowsおよびMACクライアントは、IPV6が有効になっているDNSサーバーを使用していますが、IPV6接続がありません。これにより、DNSタイムアウトが発生し、IPV4にフェイルバックする前にIPV6経由でDNSサーバーにアクセスしようとします。 DNSリゾルバーとクライアントマシンでIPV6をオフにして、より良い結果が得られるかどうかを確認してください。
この問題に遭遇した他の人にとって、これはそれを説明するのに役立ちました:
http://tiwatson.com/blog/2011-2-17-heroku-no-longer-using-a-global-request-queue
Herokuはグローバルリクエストキューを使用しないため、1つの長時間実行リクエストが高速実行リクエストをバックロックできます。