最大ソケット数に達したため、SSH接続を開くことができません。

最大ソケット数に達したため、SSH接続を開くことができません。

VPSとSSHリバース接続を介してVPSに接続された約100個のヘッドレスデバイスがあります。最近数日間、VPSは再起動後数分後にこのメッセージでSSH接続を拒否しましたkex_exchange_identification: read: Connection reset by peer

デバッグSSHフラグを使用してVPSに接続すると時々。debug1: client_input_channel_req: channel 0 rtype [email protected] reply 1

これについて読んでみると、許容されるソケットの最大数に達してエラーが発生したようです。

そしてss -xa | wc -l

494

ただし、430以下のように、どのサービスがこのソケットを開くかはわかりません。

Netid  State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port
u_dgr ESTAB      0      0               * 2147483647                  * 0

そしてcat /proc/user_beancounters

Version: 2.5
       uid  resource                     held              maxheld              barrier                limit              failcnt
   103848:  kmemsize                 66312098             68554752  9223372036854775807  9223372036854775807                    0
            lockedpages                     0                  503               262144               262144                    0
            privvmpages                369146               386161  9223372036854775807  9223372036854775807                    0
            shmpages                    74623                74943  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            numproc                       357                  393  9223372036854775807  9223372036854775807                    0
            physpages                  146470               154269                    0               262144                    0
            vmguarpages                     0                    0               294912  9223372036854775807                    0
            oomguarpages                99708               106874               262144  9223372036854775807                    0
            numtcpsock                    338                  339  9223372036854775807  9223372036854775807                    0
            numflock                       59                   64  9223372036854775807  9223372036854775807                    0
            numpty                          2                    4  9223372036854775807  9223372036854775807                    0
            numsiginfo                      0                   24  9223372036854775807  9223372036854775807                    0
            tcpsndbuf                 7093000              7110440  9223372036854775807  9223372036854775807                    0
            tcprcvbuf                 5766768              5783152  9223372036854775807  9223372036854775807                    0
            othersockbuf               523272               871456  9223372036854775807  9223372036854775807                    0
            dgramrcvbuf                     0                30520  9223372036854775807  9223372036854775807                    0
            numothersock                  500                  500                  500                  500                 8621
            dcachesize               26527977             26991757  9223372036854775807  9223372036854775807                    0
            numfile                      6064                 6290  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            numiptent                      30                   30  9223372036854775807  9223372036854775807                    0

どのサービスがそんなに多くのソケットを開けたのか、どうすればわかりますか?

ベストアンサー1

インクルードは、/proc/user_beancountersこれがOpenVZホストで実行されている仮想化インスタンスであることを示しています。制限は、プロバイダの裁量によって決定されます。

失敗したカウンタは、numothersock「TCP以外のソケット(ローカルソケット、UDP、およびその他のタイプのソケット)の最大数」として定義されます。

ss -xass -ua(すべてのUnixソケット)と(すべてのUDPソケット)の出力を確認してください。 「ローカルアドレス:ポート」列は、どのプロセスがこれらのソケットを保持しているかを見つけるのに役立ちます。

次に、上記のポートを使用して出力を表示し、lsofプロセス名と番号を調べます。

lsof | grep $PORT

これは、どのプロセスがこれらのソケットを保持しているかを示します。

おすすめ記事