大量のデータを受信するとSSH接続が停止します

大量のデータを受信するとSSH接続が停止します

SSH経由で接続された一連のGNU / Linux産業用デバイスの使用に問題があります。サーバーを変更せず、クライアント側で次の構成を使用したため、構成は非常に基本的です.ssh/config

Host <hostname>
    User <username>
    Port <port>

私が直面する問題は、多くの出力を生成するコマンド(長い結果を含むls、apt Upgrade、または大容量ファイルのcat)を実行するたびにSSH接続が応答せず、何もしないことです。ついたり凍ったりするようです。

この問題の原因が何であるかよくわかりません。 SSH構成や他の要因に関連していますか?どんな助けやアドバイスにも感謝します。

これは、同じ構成を持つ他のデバイスには問題がないため、SSHサーバーがあるネットワークに問題があるようです。ただし、ネットワークを変更する権限はありません。私のサーバーだけを制御できます。サーバーを利用する際のアクセシビリティとパフォーマンスを向上させるためにサーバーのリソースを制限する方法はありますか?

答え1

OpenVPN設定ファイルに次の行を追加して、ついに問題を解決しました。

mssfix 1410

これは、OpenVPNが最大セグメントサイズ(MSS)が1410バイトに設定されて構成されていることを意味します。 MSSは接続を介して送信できる最大パケットサイズを決定するため、ネットワーク接続にとって重要です。低いMSS値は、大きなパケットがネットワーク上で断片化されたり、パフォーマンスの問題が発生する可能性がある場合に便利です。低い MSS 値を設定すると、これらの問題を回避するのに役立ちます。

答え2

問題のls原因がCPUの問題のようです。catこのデバイスは他のデバイスと同じですか?topbig を実行してみることができますls。その場合は、nice -n 10次のようにコマンドの前にプレフィックスを付けてみてください。nice -n 10 lsこれにより、すべてのコマンドの優先順位が低くなります。

ネットワーク部分を探索したいがデバイスに最小コアがない場合は、bbrを使用してネットワークバッファの飽和を防ぎ、fq_codelを使用してストリーム間のより良い共存を達成できます。

cat << EOF > /etc/sysctl.d/99-network.conf
net.core.default_qdisc=fq_codel
net.ipv4.tcp_congestion_control=bbr
EOF
sysctl --system

ネットワークであり、bbr / fq_codelが何もしないことを確認し、カーネルがある場合は、sshとhtbを使用してtcトラフィック調整を設定し、帯域幅を節約できます。tc

関連情報