在不支持 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 |
为每个专用端口创建一个驱动程序进程。Rx 和 Tx 按顺序出现。 |
nsdrvd: 2 |
为每个专用端口创建一个 Rx 进程和一个 Tx 线程。 |
nsdrvd: 3 |
为每个专用端口创建一个 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。
- 确保 BLX 支持的 DPDK 兼容 NIC 中未列出专用 NIC 端口。有关更多信息,请参阅 Linux 主机的硬件要求。
nsdrvd
驱动程序
启用 必须使用 Linux 主机 CLI 来启用 nsdrvd
驱动程序。
-
通过运行以下命令打开
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
驱动程序
禁用 必须使用 Linux 主机 CLI 来禁用 nsdrvd
驱动程序。
-
要禁用
nsdrvd
驱动程序,请注释blx.conf
文件中的nsdrvd
参数。blx-system-config { ... # nsdrvd: 2 ... } <!--NeedCopy-->
-
重启 BLX。
systemctl restart blx <!--NeedCopy-->
BLX 重新启动后,nsdrvd
驱动程序在 BLX 上被禁用。