在不带 DPDK 支持的专用模式下配置 NetScaler BLX 的 nsdrvd 驱动程序
NetScaler BLX 绕过了 Linux 内核的网络堆栈,但在 Linux 内核内存和用户空间内存之间传输数据包时存在开销。此开销会影响数据包处理的整体性能。
我们建议使用兼容 DPDK 的网卡以获得高数据包处理性能。有关 BLX 支持的兼容 DPDK 的网卡列表,请参阅Linux 主机的硬件要求。
如果没有兼容 DPDK 的网卡,可以使用 nsdrvd 驱动程序来提高不带 DPDK 支持的数据包处理性能。
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 主机网卡端口数量。
blx.conf文件中的interface参数指定专用于 BLX 的 Linux 主机网卡端口。 -
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 的网卡中。有关更多信息,请参阅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 重新启动后,nsdrvd 驱动程序将在 BLX 上启用。
禁用 nsdrvd 驱动程序
必须使用 Linux 主机 CLI 禁用 nsdrvd 驱动程序。
-
要禁用
nsdrvd驱动程序,请注释掉blx.conf文件中的nsdrvd参数。blx-system-config { ... # nsdrvd: 2 ... } <!--NeedCopy--> -
重新启动 BLX。
systemctl restart blx <!--NeedCopy-->
BLX 重新启动后,nsdrvd 驱动程序将在 BLX 上禁用。