Extra Shared Memory
Overview
In NSX Advanced Load Balancer, there are various features that rely on database lookups. These features include IP reputation, L7 features dependent on a geographic database lookup, Bot Management, and GSLB site selection based on geolocation. These features need additional shared memory on the Service Engine to accommodate the requirements of these databases.
Similarly, GSLB, where many configuration objects are involved, requires some additional shared memory on the Service Engine. This article discusses the amount of additional shared memory required and the steps to configure additional shared memory.
Extra Shared Memory Requirements
The requirements for extra shared configuration memory depend on the features being used.
The additional memory requirement for each feature is shown below:
Feature | Extra Shared Memory Required |
---|---|
IP reputation | 40 MB |
L7 features using GeoDB lookup | 350 MB |
Bot Management | 600 MB (390 MB (=40 MB + 350 MB) for IP reputation and L7 GeoDB lookup) |
GSLB using Geolocation | 2000 MB |
GSLB using any LB algorithm with 500-5000 GSLB Services | 1000 MB |
GSLB using any LB algorithm with greater than 5000 GSLB Services | 2000 MB |
If you are using more than one of these features simultaneously, then configure extra_shared_config_memory
to be the sum of the requirements outlined above. However, as the Bot Management feature relies upon IP Reputation and L7 GeoDB lookup, the memory requirement of 600 MB already incorporates the 390 MB required for these two features.
Use the following examples to understand this further.
Example 1:
Using Bot Management and GSLB Geo Location with 1000 GSLB Services.
The breakup of extra shared memory to be configured is as follows:
Feature | Extra Shared Memory Required |
---|---|
Bot Management | 600 MB |
GSLB using Geolocation | 2000 MB |
GSLB using load balancing algorithm with 1000 services | 1000 MB |
Total shared Memory to be configured | 600 + 2000 + 1000 = 3600 MB |
Example 2:
Using Bot Management, IP reputation, and GSLB Geo Location with lesser than 500 GSLB Services.
The breakup of extra shared memory to be configured is as follows:
Feature | Extra Shared Memory Required |
---|---|
Bot Management | 600 MB |
IP reputation and GSLB Geo Location with <500 GSLB Services | 2000 MB Note: IP reputation requires 40 MB additional shared memory. Since this 40 MB is accounted for under Bot management, it can be excluded from the extra shared memory configuration. Therefore, only the shared memory of 2000 MB , required for GSLB geo- location is considered here. |
Total shared Memory to be configured | 600 + 2000 = 2600 MB |
Configuring Extra-Shared Memory
Additional shared memory can be configured using the UI or the CLI.
This is an SE group-level property and is a shared resource across all virtual services on the Service engine.
Notes:
-
Allocating
extra_shared_config_memory
will reduce the memory available to the Service Engine for use by the connection table, buffers, and caching. This should be taken into account when determining the total memory allocated to the Service Engine. -
This property takes effect only on SE boot up. Ensure that you reboot or restart the SE after configuring extra shared memory.
Configuring Using the UI
From the NSX Advanced Load Balancer UI,
-
Navigate to Infrastructure > Cloud Resources > Service Engine Group.
-
Under the Resources tab, select Enable Host Geolocation Profile. When this option is not selected the value of Extra Shared Config Memory is 0. On enabling this option, by default, the value of Extra Shared Config Memory is set to 2000 MB. However, this may not be sufficient depending on the use case.
-
Specify the Extra Shared Config Memory value, as required.
-
Click Save.
-
Reboot the SE for the configuration to take effect.
Configuring Using the CLI
To configure extra shared memory, use the CLI configuration shown below:
[admin:ctrl]: > configure serviceenginegroup demo_SEgroup
[admin:ctrl]: serviceenginegroup> extra_shared_config_memory 3600
Overwriting the previously entered value for extra_shared_config_memory
[admin:ctrl]: serviceenginegroup> save
Note: Reboot the SE for the configuration to take effect.