web-dev-qa-db-ja.com

RXのオーバーランを修正するには、どのカーネルパラメータを調整する必要がありますか?

大量のトラフィックを処理するCentos6サーバーがあります。 RXのオーバーランが常に増加しているのがわかります。

RX packets:11191345002 errors:0 dropped:0 overruns:35592596 frame:0
TX packets:15262461573 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:1871320014951 (1.7 TiB)  TX bytes:12673638434114 (11.5 TiB) 

http://www.tldp.org/LDP/nag2/x-087-2-iface.ifconfig.html によると

レシーバーのオーバーランは通常、カーネルが最後の割り込みを処理できるよりも速くパケットが着信したときに発生します。

この問題を修正するには、どのカーネルパラメータを調整する必要がありますか?

2
Fernando

I/O構成に適切なtuned-admプロファイルを使用することをお勧めします。この設定では、yum install tuned-utilstuned-adm profile enterprise storageが役立つようです。

カーネル側では、送信/受信バッファーを設定できます。

net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

私はそれらを最初に試してみます...

それでも問題が発生する場合は、NICリングバッファをethtool -gで確認できます。

Ring parameters for eth0:
Pre-set maximums:
RX:     4096
RX Mini:    0
RX Jumbo:   0
TX:     4096
Current hardware settings:
RX:     256
RX Mini:    0
RX Jumbo:   0
TX:     256

したがって、ethtool -G eth0 rx 1024を使用してrxを256から1024に変更できます。

4
ewwhite