大量のトラフィックを処理する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 によると
レシーバーのオーバーランは通常、カーネルが最後の割り込みを処理できるよりも速くパケットが着信したときに発生します。
この問題を修正するには、どのカーネルパラメータを調整する必要がありますか?
I/O構成に適切なtuned-adm
プロファイルを使用することをお勧めします。この設定では、yum install tuned-utils
とtuned-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に変更できます。