Red Hat Training

A Red Hat training course is available for RHEL 8

34.10. デバイスドライバーと NIC のチューニング

RHEL では、カーネルモジュールは、ネットワークインターフェイスコントローラー (NIC) 用のドライバーを提供します。これらのモジュールは、デバイスドライバーと NIC をチューニングおよび最適化するためのパラメーターをサポートしています。たとえば、ドライバーが受信割り込みの生成の遅延をサポートしている場合は、対応するパラメーターの値を減らして、受信記述子の不足を避けることができます。

注記

すべてのモジュールがカスタムパラメーターをサポートしているわけではなく、機能はハードウェア、ドライバーおよびファームウェアのバージョンによって異なります。

34.10.1. カスタム NIC ドライバーのパラメーターの設定

多くのカーネルモジュールは、ドライバーとネットワークインターフェイスコントローラー (NIC) をチューニングするためのパラメーターの設定をサポートしています。ハードウェアやドライバーに応じて設定をカスタマイズできます。

重要

カーネルモジュールにパラメーターを設定すると、RHEL はこれらの設定をこのドライバーを使用するすべてのデバイスに適用します。

前提条件

  • ホストに NIC がインストールされている。
  • NIC のドライバーを提供するカーネルモジュールは、必要なチューニング機能をサポートしている。
  • ローカルでログインしているか、パラメーターを変更するドライバーを使用するネットワークインターフェイスとは異なるネットワークインターフェイスを使用してログインしている。

手順

  1. ドライバーを特定します。

    # ethtool -i enp0s31f6
    driver: e1000e
    version: ...
    firmware-version: ...
    ...

    特定の機能には、特定のドライバーとファームウェアのバージョンが必要になる場合があることに注意してください。

  2. カーネルモジュールの利用可能なパラメーターを表示します。

    # modinfo -p e1000e
    ...
    SmartPowerDownEnable:Enable PHY smart power down (array of int)
    parm:RxIntDelay:Receive Interrupt Delay (array of int)

    パラメーターの詳細については、カーネルモジュールのドキュメントを参照してください。RHEL のモジュールについては、kernel-doc パッケージで提供される /usr/share/doc/kernel-doc-<version>/Documentation/networking/device_drivers/ ディレクトリーにあるドキュメントを参照してください。

  3. /etc/modprobe.d/nic-parameters.conf ファイルを作成し、モジュールのパラメーターを指定します。

    options <module_name> <parameter1>=<value> <parameter2>=<value>

    たとえば、ポートの省電力メカニズムを有効にし、受信割り込みの生成を 4 ユニットに設定するには、次のように入力します。

    options e1000e SmartPowerDownEnable=1 RxIntDelay=4
  4. モジュールをアンロードします。

    # modprobe -r e1000e
    警告

    アクティブなネットワークインターフェイスが使用するモジュールをアンロードすると、接続が即座に終了し、サーバーからロックアウトされる可能性があります。

  5. モジュールをロードします。

    # modprobe e1000e
  6. ネットワーク接続を再アクティブ化します。

    # nmcli connection up <profile_name>

検証

  1. カーネルメッセージを表示します。

    # 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
    ...

    すべてのモジュールがパラメーター設定をカーネルリングバッファーに記録するわけではないことに注意してください。

  2. 特定のカーネルモジュールは、モジュールパラメーターごとに /sys/module/<driver>/parameters/ ディレクトリーにファイルを作成します。これらの各ファイルには、このパラメーターの現在の値が含まれています。これらのファイルを表示して設定を確認できます。

    # cat /sys/module/<driver_name>/parameters/<parameter_name>