Configure simultaneous multithreading for NetScaler VPX on public clouds
NetScaler uses different dedicated cores for its management and its data plane functions. One core is typically assigned to management plane functions. The rest of the available cores are assigned to data plane functions.
The following image shows a simplified illustration of a 4 core NetScaler VPX.
Figure 1. NetScaler management and data plane workload on a 4 core system
While the preceding image shows the distribution of NetScaler functions across available cores, it’s not necessarily an accurate depiction of the underlying hardware. Most modern x86 CPUs provide two logical cores per physical core, through features commercially known as Intel Hyperthreading (HT) or AMD simultaneous multithreading (SMT).
The following image shows NetScaler VPX running on a modern CPU with SMT disabled. Each CPU core is split into two or more logical CPUs, commonly referred to as threads. Each thread has its own set of replicated resources, a portion of partitioned resources, and competes for shared resources with its sibling threads.
Figure 2. NetScaler management and data plane workload on a 4 core/8 thread system with SMT disabled
The following image shows NetScaler VPX running on a modern CPU with SMT enabled.
Figure 3. NetScaler management and data plane workload on a 4 core system with SMT enabled
Enabling SMT improves NetScaler performance by:
- Running data plane functions on all physical cores.
- Moving the management plane functions to the sibling thread.
- Introducing a flexible resource limit mechanism to prevent management plane functions from compromising the performance of data plane functions.
SMT support matrix
The VPX platforms, cloud instance types, and NetScaler versions that support SMT are listed in the following table.
VPX platform | Instance types | NetScaler VPX version |
---|---|---|
AWS | M5, m5n, c5, c5n | 13.1-48.x and later |
Note:
By enabling the SMT feature, NetScaler VPX performance is boosted on the supported types.
Limitations
The SMT feature effectively doubles the vCPUs available to a NetScaler appliance. The licensing limits must be considered to allow NetScaler appliance to use them.
For example, consider NetScaler VPX illustrated in Figure 3. If a throughput-based licensing is used, a 10 Gbps or above license is required with the SMT feature to enable 8 vCPUs. Previously, a 1 Gbps license was sufficient for enabling 4 vCPUs. If a vCPU licensing is used, NetScaler VPX must be configured to check out licenses for double the count of vCPUs for proper operation. Contact NetScaler technical support for further guidance on this topic.
Configure SMT
Before enabling the SMT feature, ensure that your platform supports this feature. See the support matrix table in the previous section.
To enable the SMT feature, follow these steps:
- Create an empty file named
.smt_handling
under the “/nsconfig” directory. - Save the current configuration.
-
Reboot NetScaler VPX instance.
nscli> shell touch /nsconfig/.smt_handling Done nscli> reboot Are you sure you want to restart NetScaler (Y/N)? [N]:Y Done <!--NeedCopy-->
-
After rebooting, NetScaler indicates that the feature is both available and enabled.
smt_handling is set to “1” > shell sysctl -a | grep smt_handling netscaler.smt_handling_platform: 1 netscaler.smt_handling: 1 <!--NeedCopy-->
To disable the SMT feature, follow these steps:
- Remove the
.smt_handling
file. -
Reboot NetScaler VPX instance.
shell rm -f /nsconfig/.smt_handling Done reboot Are you sure you want to restart NetScaler (Y/N)? [N]:Y Done <!--NeedCopy-->
-
After rebooting, NetScaler indicates that the feature is available but disabled.
> shell sysctl -a | grep smt_handling netscaler.smt_handling_platform: 1 netscaler.smt_handling: 0 <!--NeedCopy-->
Troubleshooting
Run the sysctl
shell command to verify the status of the SMT feature.
```
> shell sysctl -a | grep smt_handling
>
<!--NeedCopy--> ```
The command can return any of the following outputs.
-
The SMT feature is missing.
The
sysctl
command returns no output. -
The SMT feature is not supported.
The SMT feature isn’t supported for any of the following reasons:
- Your NetScaler VPX is older than 13.1-48.x or 14.1-12.x.
- Your cloud does not support SMT.
-
Your VM instance type doesn’t support SMT, for example, the vCPU count is more than 8.
> shell sysctl -a | grep smt_handling netscaler.smt_handling_platform: 0 (indicates not supported) netscaler.smt_handling: 0 (indicates not enabled) <!--NeedCopy-->
-
The SMT feature is supported but not enabled.
> shell sysctl -a | grep smt_handling netscaler.smt_handling_platform: 1 (available) netscaler.smt_handling: 0 (not enabled) <!--NeedCopy-->