第10章 デバイスドライバーと NIC のチューニング
RHEL では、カーネルモジュールは、ネットワークインターフェイスコントローラー (NIC) 用のドライバーを提供します。これらのモジュールは、デバイスドライバーと NIC をチューニングおよび最適化するためのパラメーターをサポートしています。たとえば、ドライバーが受信割り込みの生成の遅延をサポートしている場合は、対応するパラメーターの値を減らして、受信記述子の不足を避けることができます。
すべてのモジュールがカスタムパラメーターをサポートしているわけではなく、機能はハードウェア、ドライバーおよびファームウェアのバージョンによって異なります。
10.1. カスタム NIC ドライバーのパラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
多くのカーネルモジュールは、ドライバーとネットワークインターフェイスコントローラー (NIC) をチューニングするためのパラメーターの設定をサポートしています。ハードウェアやドライバーに応じて設定をカスタマイズできます。
カーネルモジュールにパラメーターを設定すると、RHEL はこれらの設定をこのドライバーを使用するすべてのデバイスに適用します。
前提条件
- ホストに NIC がインストールされている。
- NIC のドライバーを提供するカーネルモジュールは、必要なチューニング機能をサポートしている。
- ローカルでログインしているか、パラメーターを変更するドライバーを使用するネットワークインターフェイスとは異なるネットワークインターフェイスを使用してログインしている。
手順
ドライバーを特定します。
ethtool -i enp0s31f6 driver: e1000e version: ... firmware-version: ... ...
# ethtool -i enp0s31f6 driver: e1000e version: ... firmware-version: ... ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定の機能には、特定のドライバーとファームウェアのバージョンが必要になる場合があることに注意してください。
カーネルモジュールの利用可能なパラメーターを表示します。
modinfo -p e1000e ... SmartPowerDownEnable:Enable PHY smart power down (array of int) parm:RxIntDelay:Receive Interrupt Delay (array of int)
# modinfo -p e1000e ... SmartPowerDownEnable:Enable PHY smart power down (array of int) parm:RxIntDelay:Receive Interrupt Delay (array of int)Copy to Clipboard Copied! Toggle word wrap Toggle overflow パラメーターの詳細は、カーネルモジュールのドキュメントを参照してください。RHEL のモジュールは、
kernel-docパッケージで提供される/usr/share/doc/kernel-doc-<version>/Documentation/networking/device_drivers/ディレクトリーにあるドキュメントを参照してください。/etc/modprobe.d/nic-parameters.confファイルを作成し、モジュールのパラメーターを指定します。options <module_name> <parameter1>=<value> <parameter2>=<value>
options <module_name> <parameter1>=<value> <parameter2>=<value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、ポートの省電力メカニズムを有効にし、受信割り込みの生成を 4 ユニットに設定するには、次のように入力します。
options e1000e SmartPowerDownEnable=1 RxIntDelay=4
options e1000e SmartPowerDownEnable=1 RxIntDelay=4Copy to Clipboard Copied! Toggle word wrap Toggle overflow モジュールをアンロードします。
modprobe -r e1000e
# modprobe -r e1000eCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告アクティブなネットワークインターフェイスが使用するモジュールをアンロードすると、接続が即座に終了し、サーバーからロックアウトされる可能性があります。
モジュールをロードします。
modprobe e1000e
# modprobe e1000eCopy to Clipboard Copied! Toggle word wrap Toggle overflow ネットワーク接続を再アクティブ化します。
nmcli connection up <profile_name>
# nmcli connection up <profile_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
カーネルメッセージを表示します。
dmesg ... [35309.225765] e1000e 0000:00:1f.6: Transmit Interrupt Delay set to 16 [35309.225769] e1000e 0000:00:1f.6: PHY Smart Power Down Enabled ...
# dmesg ... [35309.225765] e1000e 0000:00:1f.6: Transmit Interrupt Delay set to 16 [35309.225769] e1000e 0000:00:1f.6: PHY Smart Power Down Enabled ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのモジュールがパラメーター設定をカーネルリングバッファーに記録するわけではないことに注意してください。
特定のカーネルモジュールは、モジュールパラメーターごとに
/sys/module/<driver>/parameters/ディレクトリーにファイルを作成します。これらの各ファイルには、このパラメーターの現在の値が含まれています。これらのファイルを表示して設定を確認できます。cat /sys/module/<driver_name>/parameters/<parameter_name>
# cat /sys/module/<driver_name>/parameters/<parameter_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow