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の再起動後、BLXでnsdrvd ドライバーが有効になります。
nsdrvdドライバーの無効化
nsdrvd ドライバーを無効にするには、LinuxホストCLIを使用する必要があります。
-
nsdrvdドライバーを無効にするには、blx.confファイル内のnsdrvdパラメーターをコメントアウトします。blx-system-config { ... # nsdrvd: 2 ... } <!--NeedCopy--> -
BLXを再起動します。
systemctl restart blx <!--NeedCopy-->
BLXの再起動後、BLXでnsdrvd ドライバーが無効になります。