GNU/Linux >> Linux の 問題 >  >> Linux

Linux での遅いネットワーク通信または接続タイムアウトのトラブルシューティング

低速ネットワークまたはネットワーク パケット ドロップのトラブルシューティングは難しい場合があります。ネットワーク通信の速度低下に加えて、次のような追加の症状が観察される場合があります:

  • ssh や sftp を使用してサーバーに接続しようとすると、タイムアウトまたは応答の遅延が発生します。
  • ネットワーク負荷が高くなると、多数のネットワーク再送信が観察されます。
  • 「ifconfig eth[x]」コマンドの出力に多数のパケット ドロップが見られる場合があります。

他にも次のような症状があります:

– コマンドの出力:netstat -s は、次の統計の増加する値を示します:(「netstat -s」を数回実行):

13336 packets pruned from receive queue because of socket buffer overrun
516 times the listen queue of a socket overflowed
516 SYNs to LISTEN sockets ignored
2040077 packets collapsed in receive queue due to low socket buffer
TCPBacklogDrop: 744165

– コマンドの出力:ethtool -S eth[x] は、カウンターに対して増加する値を示します:“rx_fw_discards”:

rx_fw_discards: 4493

ネットワーク パフォーマンスが低下する原因

ネットワーク パフォーマンスの低下には複数の理由が考えられます。しかし、考えられる原因のいくつかは次のとおりです:

  • ネットワークの負荷がすでに最大容量に達しており、輻輳が発生しています。
  • 構成された受信バッファは、ネットワーク負荷に対して十分ではありません。
  • 物理層でのエラーによるパケット ドロップがあります。

遅いネットワーク パフォーマンスのトラブルシューティング

1. iperf ツールを使用してネットワーク スループットを確認し、ネットワーク帯域幅の使用率が観察された最大スループットに近づいているかどうかを確認します。

Iperf を使用して Linux でネットワーク パフォーマンスをテストする方法

2. ネットワーク パラメーターの値を適切に設定して、最大のネットワーク スループットをサポートします。帯域幅遅延積 (BDP) の値を見つけて、それに応じてネットワーク バッファー サイズを設定します。リンク帯域幅と往復時間の積として計算されます。

例:

– 1 Gb/秒のネットワークと 0.1 秒のラウンドトリップ時間の場合、BDP=(0.1 * 10^9)/8.このようなネットワークでは、ファイルの下に次のパラメータ値を設定します:/etc/sysctl.conf

# vi /etc/sysctl.conf
net.core.rmem_max = 12500000
net.core.wmem_max = 12500000
net.ipv4.tcp_rmem = 4096 87380 12500000
net.ipv4.tcp_wmem = 4096 65536 12500000

また、次のパラメータも増やします:

# vi /etc/sysctl.conf
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_max_syn_backlog = 4096

次に、コマンドを実行します:

# sysctl -p

a) どちらの変更でも、システムの再起動は必要ありません。

b) この変更を投稿します。コマンド「netstat -s」の出力を監視し、次のカウンターがまだ増加しているかどうかを確認する必要があります:

packets pruned from receive queue because of socket buffer overrun
times the listen queue of a socket overflowed
SYNs to LISTEN sockets ignored
packets collapsed in receive queue due to low socket buffer
TCPBacklogDrop

3. NIC の RX リング バッファ サイズを増やします。この数値の設定にはトレードオフがあります。値を大きくすると、パケットの処理が遅れる可能性があり、値を小さくすると、対応するドライバーが受信パケットの処理で遅延が発生したときにパケットがドロップされる可能性があります。

a) 通常、RX リング サイズを 2 倍にすることから始め、コマンド「ethtool -S eth[x]」の出力を監視します。

# ethtool -G eth[x] rx 512

b) この変更を永続的にするには、ファイルに次を追加します:/etc/sysconfig/network-scripts/ifcfg-eth[x] :

# vi /etc/sysconfig/network-scripts/ifcfg-eth[x]
ETHTOOL_OPTS="-G rx 512"


Linux
  1. Linuxでのハードウェア問題のトラブルシューティング

  2. ネットワーク診断用の10のLinuxコマンド

  3. 5Linuxネットワークのトラブルシューティングコマンド

  1. nmcliを使用してLinuxコマンドラインからネットワーク接続を管理する

  2. Linuxネットワークのトラブルシューティングとデバッグ?

  3. Linux に STDCALL はありますか?

  1. Linuxでの低速WiFiのトラブルシューティング

  2. Linux –低速メディア–ディスクキャッシュの調整?

  3. Linux OS サービス「ネットワーク」