1.4. NIC の送信キューの長さを増やして送信エラーの数を減らす
カーネルは、パケットを送信する前に送信キューにパケットを格納します。デフォルトの長さ (1000 パケット) は、通常、10 Gbps には十分です。また、多くの場合、40 Gbps ネットワークにも十分です。ただし、より高速なネットワークの場合、またはアダプターで送信エラーが増加する場合は、キューの長さを増やしてください。
手順
現在の送信キューの長さを表示します。
# ip -s link show enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 ...この例では、
enp1s0インターフェイスの送信キューの長さ (qlen) は1000です。ネットワークインターフェイスのソフトウェア送信キューのドロップされたパケットカウンターを監視します。
# tc -s qdisc show dev enp1s0 qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 Sent 16889923 bytes 426862765 pkt (dropped 191980, overlimits 0 requeues 2) ...送信エラー数が多い、または増加している場合は、送信キューの長さをより長く設定します。
このインターフェイスを使用する NetworkManager 接続プロファイルを特定します。
# nmcli connection show NAME UUID TYPE DEVICE Example-Connection a5eb6490-cc20-3668-81f8-0314a27f3f75 ethernet enp1s0接続プロファイルを更新し、送信キューの長さを増やします。
# nmcli connection modify Example-Connection link.tx-queue-length 2000キューの長さを現在の値の 2 倍に設定します。
変更を適用します。
# nmcli connection up Example-Connection
検証
送信キューの長さを表示します。
# ip -s link show enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 2000 ...ドロップされたパケットカウンターを監視します。
# tc -s qdisc show dev enp1s0droppedカウンターがまだ増加する場合は、送信キューの長さを再度 2 倍にします。カウンターが増加しなくなるまで、このプロセスを繰り返します。
!:context: