DPDKサポートなしの専用モードにおけるNetScaler BLX用nsdrvdドライバーの設定

NetScaler BLXはLinuxカーネルのネットワークスタックをバイパスしますが、Linuxカーネルメモリとユーザースペースメモリ間でパケットを転送する際にオーバーヘッドが発生します。このオーバーヘッドは、パケット処理の全体的なパフォーマンスに影響を与えます。

高いパケット処理パフォーマンスを得るには、DPDK互換NICの使用を推奨します。BLXでサポートされているDPDK互換NICのリストについては、「Linuxホストのハードウェア要件」を参照してください。

DPDK互換NICがない場合でも、DPDKサポートなしでパケット処理のパフォーマンスを向上させるためにnsdrvdドライバーを使用できます。

nsdrvdドライバーは、パケットの受信と送信に関してLinuxカーネルとのすべてのやり取りを処理します。また、トラフィックをPEに分散します。blx.confファイル内のnsdrvdパラメーターを使用して、nsdrvdドライバーを設定できます。次の表は、nsdrvdパラメーターの可能な値について説明しています。

可能な値 説明
nsdrvd: 1 専用ポートごとに1つのドライバープロセスが作成されます。RxとTxは順次実行されます。
  • nsdrvd: 2 専用ポートごとに1つのRxプロセスと1つのTxスレッドが作成されます。
  • nsdrvd: 3 専用ポートごとに1つのRxプロセスと2つのTxスレッドが作成されます。

nsdrvdドライバーを使用するには、Linuxホストは次の計算に基づいて少なくともn個のコアを備えている必要があります。

  • n >= WP + (INT*P) + 1

ここで、

  • WP - BLXのワーカープロセス(パケットエンジン)の数。blx.confファイルのworker-processesパラメーターは、BLXのパケットエンジンの数を指定します。
  • INT - BLX専用のLinuxホストNICポートの数。blx.confファイルのinterfaceパラメーターは、BLX専用のLinuxホストNICポートを指定します。
  • P - BLXのnsdrvdドライバープロセスの数。blx.confファイルのnsdrvdパラメーターは、nsdrvdドライバープロセスの数を指定します。

: 次の構成のBLXには、少なくとも10個のコアが必要です。

  • WP = 3つのパケットエンジン
  • INT = 2つの専用インターフェース
  • P = 3つのnsdrvdプロセス

n = WP + (INT*P) + 1 = (3+2*3+1) = 10

前提条件

  • BLXが専用モードで構成されていることを確認します。構成手順については、「専用モードでのBLXの構成」を参照してください。
  • 専用NICポートが、BLXでサポートされているDPDK互換NICにリストされていないことを確認します。詳細については、「Linuxホストのハードウェア要件」を参照してください。

nsdrvdドライバーの有効化

nsdrvdドライバーを有効にするには、LinuxホストCLIを使用する必要があります。

  1. 次のコマンドを実行して、blx.confファイルを開きます。

    注:

    blx.confファイルを編集するには、任意のテキストエディターを使用できます。

    nano /etc/blx/blx.conf
    <!--NeedCopy-->
    
  2. nsdrvdパラメーターのコメントを解除し、値を1、2、または3に設定します。

    blx-system-config
    {
            ...
            nsdrvd: <number of process>
            ...
    }
    <!--NeedCopy-->
    
  3. blx.confファイルを保存します。
  4. BLXを再起動します。

    systemctl restart blx
    <!--NeedCopy-->
    

BLXの再起動後、nsdrvdドライバーがBLXで有効になります。

nsdrvdドライバーの無効化

nsdrvdドライバーを無効にするには、LinuxホストCLIを使用する必要があります。

  1. nsdrvdドライバーを無効にするには、blx.confファイル内のnsdrvdパラメーターをコメントアウトします。

    blx-system-config
    {
            ...
            # nsdrvd: 2
            ...
    }
    <!--NeedCopy-->
    
  2. BLXを再起動します。

    systemctl restart blx
    <!--NeedCopy-->
    

BLXの再起動後、nsdrvdドライバーがBLXで無効になります。

DPDKサポートなしの専用モードにおけるNetScaler BLX用nsdrvdドライバーの設定