結合インターフェイスを設定する前にNICリングバッファサイズを管理するシステムの基本的な方法は何ですか?

結合インターフェイスを設定する前にNICリングバッファサイズを管理するシステムの基本的な方法は何ですか?

ethtoolでは、NICリングバッファサイズを管理するのが簡単です。たとえば、次のようになります。

ethtool -G eth0 rx 4096 tx 4096

(またはeth0管理する必要があるインターフェースと交換してください。)

現場で簡単にできます。

問題は、結合されたインターフェイスの一部であるすべてのスレーブインターフェイスでこれを行うと、結合が混乱することです。 (多くの場合、コレクターIDは以前と同じように一致しません。)編集:これは予想される動作ではないことがわかりました。 (私が観察したケースでなぜこれが起こるのかを詳しく知ると、それを更新できます。)

RHEL 7では、値を(たとえば)にETHTOOL_OPTS設定してこれを実行できます。/etc/sysconfig/network-scripts/ifcfg-eth0ETHTOOL_OPTS="-G ${DEVICE} rx 4096 tx 4096"Red Hatの記事を見る)。 (警告:上記のアグリゲータIDの不一致を実際に防ぐかどうかをテストしていません。)

しかし、Ubuntu 18.04では簡単に見つけることができる場所はありません。

私はnetplanドキュメント、systemdネットワーキングドキュメント、networkd-dispatcherを掘り下げました。

私の同僚の一人がネットワークスケジューラを使って解決策を思いついた。〜らしいうまくいきますが、競争条件がまだ関係しているかどうかはわかりません。発生する存在する代わりに働くために保証するインターフェイスバインディングを設定する前に、リングバッファサイズを設定してください。 (今後)下記に載せますが、正解かはわかりません。 (また、システム文書には記載されていません。)

質問は次のとおりです。

これらのインターフェイスをバインドする前に、起動時にイーサネットインターフェイスリングバッファサイズを管理するシステムの基本的な方法は何ですか?

ベストアンサー1

Ubuntu 18のudevルールは次のとおりです。

ACTION=="add|change", SUBSYSTEM=="net", KERNEL=="eth*|en*", RUN+="/sbin/ethtool -G $name rx 4096 tx 4096"

これを入れると、/etc/udev/rules.d/59-net.ring.rules起動プロセスの初期に適用されます。

おすすめ記事