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を使用する必要があります。
-
次のコマンドを実行して、
blx.confファイルを開きます。注:
blx.confファイルを編集するには、任意のテキストエディターを使用できます。nano /etc/blx/blx.conf <!--NeedCopy--> -
nsdrvdパラメーターのコメントを解除し、値を1、2、または3に設定します。blx-system-config { ... nsdrvd: <number of process> ... } <!--NeedCopy--> -
blx.confファイルを保存します。 -
BLXを再起動します。
systemctl restart blx <!--NeedCopy-->
BLXの再起動後、nsdrvdドライバーがBLXで有効になります。
nsdrvdドライバーの無効化
nsdrvdドライバーを無効にするには、LinuxホストCLIを使用する必要があります。
-
nsdrvdドライバーを無効にするには、blx.confファイル内のnsdrvdパラメーターをコメントアウトします。blx-system-config { ... # nsdrvd: 2 ... } <!--NeedCopy--> -
BLXを再起動します。
systemctl restart blx <!--NeedCopy-->
BLXの再起動後、nsdrvdドライバーがBLXで無効になります。