免責事項: これは英文の記事 「vCenter Server returns 503 Service Unavailable errors (2033822)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
この問題は、Windows Vista または Windows Server 2008 上で実行している vCenter Server にのみ影響します。負荷が高い場合、vCenter Server で呼び出される一部の操作が失敗し、エラーの説明には HTTP エラー「503 サービスを一時的に使用できません」と表示されます。エラー メッセージはクライアントによって生成されるため、クライアントごとに多少の違いがある場合があります。
vpxd ログ ファイルには、タイムアウトによってソケット接続の試行が失敗したことを示すエントリが含まれます。エラー直後に vCenter Server ホスト上で netstat -an を実行すると、loopback のポート 8085 と loopback の別のポート間に数多くの接続が存在することが分かります。これらの接続の一部は TIME_WAIT 状態にあります。
vCenter Server は、リモート プロシージャ コール (RPC) に loopback (localhost) の TCP 接続を使用して、クライアント要求をディスパッチし、vCenter Server コンパニオン サービスと通信します。このため、負荷が高い状態では、vCenter Server は多くのローカル TCP 接続を作成し、閉じてから、また新しい接続を開きます。一部の閉じられた接続が、サーバ側で TIME_WAIT 状態でしばらくの間(デフォルトの Windows 設定で 4 分間)開いたままになります。クライアント側のポート数が限られていることから、vCenter Server が接続を十分な速度で使用すると、ある時点でクライアント側がポートの再使用を試みますが、サーバ側では依然としてこのクライアント ポートの接続が TIME_WAIT 状態のままです。
通常、この状況では、サーバに古い接続を閉じて新しい接続を受け入れるように促す必要があります。しかし、Windows Vista または Windows Server 2008 では、確認済みの TCP スタックの欠陥により、サーバ側が接続要求を無視する可能性があります。この現象が発生すると、クライアントは何度か再試行し、タイムアウトします。この状況で、vCenter Server ディスパッチャはサービスに接続できず、503 サービスを使用できません エラーをクライアントに返し、クライアント要求は失敗します。