ナレッジベース

Tableau Server ポートの枯渇に関する問題


発行: 23 Mar 2017
最終修正日: 30 Jul 2020

問題

ポートの枯渇に関する症状

ポートの枯渇については、その兆候となりうる方法が多いため、原因を特定することが難しい場合があります。次のリストで、ポートの枯渇に関する一般的な症状について説明します。

  • サーバーへの接続に失敗した。たとえば、次のエラーが表示される場合があります。

    Unable to connect to the remote server

    System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted.

  • サーバーへの接続がタイム アウトになった。
  • パフォーマンスが予想以下に低下する。
  • サーバーの応答が停止する。

ポートの枯渇が問題になっているかどうかの判別

どの症状がポートの枯渇の原因となっているかを判別するには、使用中のダイナミック ポートの数を決定する必要があります。これを決定するには、まずダイナミック ポートの範囲を特定してから現在使用しているポートを表示します。

ダイナミック ポートの範囲の特定

管理者としてコマンド プロンプトを開き、次のコマンドを入力してダイナミック ポートの範囲を決定します。

netsh int ipv4 show dynamicportrange tcp

または

netsh int ipv6 show dynamicportrange tcp

コマンドに、最初のダイナミック ポートのポート番号 (開始ポート) とポートの数が表示されます。

ポートの数を開始ポートに追加して、ダイナミック ポートの範囲を決定します。たとえば、開始ポートが 60000、ポートの数が 5000 の場合、範囲は 60000 ~ 65000 となります。

netsh コマンドの詳細については、Microsoft TechNet の「Netsh Command Reference (Netsh コマンド リファレンス)」を参照してください。

現在使用中のポートの表示

次のコマンドを実行して、現在使用しているポートを表示します。

netstat –n

ヒント: ファイルにコマンドの出力を送信するには、次のコマンドを入力します。

netstat –n > out.txt

現在使用しているポートとダイナミック ポートの範囲を比較します。大部分のポートまたはすべてのポートが使用中の場合、Tableau Server でポートの枯渇が発生していると言えます。netstat コマンドの出力の詳細については、Microsoft サポートの Web サイトで「TCP Connection States and Netstat Output (TCP 接続の状態と Netstat 出力)」を参照してください。

次の画像には、ESTABLISHED 状態および TIME_WAIT 状態のポートが表示されています。これらはアクティブな接続で使用中か、または再利用するシステムにまだリリースされていません。ダイナミック ポートの範囲全体と以下の画像が一致している場合は、Tableau Server がポートの枯渇状態と言えます。

ユーザーが追加した画像

環境

  • Tableau Server

解決策

ダイナミック ポートの範囲拡大

まず、ポートを含める範囲を 32767 ~ 65535 に設定します。この範囲は Tableau Server で使用されるポートには影響しません。 また、ポート 65535 はポートの最大値です。

次のコマンドを実行して、ダイナミック ポートの範囲を広げます。

netsh int <ipv4|ipv6> set dynamicportrange <tcp|udp> start=number num=range store=<active/persistent>

この例では、コマンドは次のようになります。

netsh int ipv4 set dynamicportrange tcp start=32767 num=32768 store=persistent

説明:

start=32767: 最初のポートのダイナミック ポートの範囲は、32767 です。

num=32768: ダイナミック ポートの範囲には、開始ポートで始まる 32,768 個のポートを使用します。

store=persistent: ダイナミック ポートの範囲は、次回システムを再起動したときに保存されます。

ダイナミック ポートの範囲設定の詳細については、「Netsh Command Reference (Netsh コマンド リファレンス)」「set dynamicportrange (dynamicportrange の設定)」セクションを参照してください。

原因

Tableau Server が多数の Web 要求を受信する場合は、ポートの枯渇に関する問題が発生する可能性があります。サーバー上のすべてのダイナミック ポートが使用中の場合に、ポートの枯渇が発生します。ダイナミック ポート (エフェメラル ポート) は、一時的な接続に使用するために指定されたポートの範囲です。

Tableau Server は、分散インストールの一部となる場合、または他のサービスと統合される場合にポートの枯渇状態となる可能性が高まります。どちらの場合も要求の数が増え、結果的にサーバー上で使用されるダイナミック ポートの数も増えるためです。

詳細情報

この例では、ダイナミック ポートの範囲がポート 32767 ~ 65535 に設定されています。ただし、ポートの枯渇に関する問題が継続する場合は、ダイナミック ポートの範囲を広げることも可能です。

ダイナミック ポート使用までの時間を短縮する方法、およびダイナミック ポートの範囲をレジストリで直接設定する方法の詳細については、MSDN の「使用可能な TCP/IP ポートが存在しないことの回避」を参照してください。

この記事で問題は解決しましたか?