すべてのプロダクト
Search
ドキュメントセンター

:Linux ECSインスタンスに「TCP: time wait bucket table overflow」エラーメッセージが多数表示された場合はどうすればよいですか。

最終更新日:Jan 23, 2025

このトピックでは、次の問題の原因と解決策について説明します。Linux Elastic Compute Service (ECS) インスタンスの /var/log/messagesファイルに多数の「TCP: time wait bucket table overflow」エラーメッセージが表示されます。

問題の説明

Linux ECSインスタンスの /var/log/messagesファイルに多数の「TCP: time wait bucket table overflow」エラーメッセージが表示されます。

原因

ECSインスタンスでは、多数のTCP接続がTIME-WAIT状態になります。これは、net.ipv4.tcp_max_tw_buckets (またはtcp_max_tw_buckets) カーネルパラメーターで定義された上限を超えています。

  • tcp_max_tw_buckets: TIME_WAIT状態でサポートされるTCPソケットの最大数を示します。 最大数を超えると、システムはTIME_WAIT状態で過剰なソケットを停止し、「TCP: time wait bucket table overflow」エラーメッセージを生成します。

  • net.ipv4.tcp_max_tw_buckets: tcp_max_tw_bucketsパラメータと同じ機能を持ち、単純なDDoS攻撃から防御するために使用されます。 ビジネスで必要な値が小さい場合を除き、このパラメーターの値を下げないでください。 ネットワーク条件に基づいてデフォルト値より大きい値が必要な場合は、net.ipv4.tcp_max_tw_bucketsパラメーターの値またはメモリサイズを大きくします。

解決策

上記の問題を解決するには、net.ipv4.tcp_max_tw_bucketsパラメーターの値を増やします。

  1. Linux ECSインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. net.ipv4.tcp_max_tw_bucketsパラメーターの値を変更します。

    1. 次のコマンドを実行して、sysctl.confファイルを開きます。

      vim /etc/sysctl.conf
    2. Iキーを押して挿入モードに入ります。

    3. ビジネス要件に基づいて、net.ipv4.tcp_max_tw_bucketsパラメーターの値を増やします。

      この例では、net.ipv4.tcp_max_tw_bucketsパラメーターの値を20000に変更します。

      net.ipv4.tcp_max_tw_buckets = 20000
    4. Escキーを押して :wqと入力し、enterキーを押してファイルを保存して終了します。

    5. 次のコマンドを実行して、変更を有効にします。

      sysctl -p
  3. 次のコマンドを実行して、接続統計を照会します。

    netstat -an | grep 80 | awk '{print $6}' | sort | uniq -c | sort -rn