Memory is allocated to application processes in terms of pages and by default, 4K pages are supported. For applications dealing with larger datasets, using 4K pages may lead to performance degradation and overhead because of translation lookaside buffer (TLB) misses. To address this, modern CPUs support HugePages which are typically 2M and 1G. This helps avoid TLB miss overhead and therefore improves performance.
Both applications and network functions can improve performance using HugePages. Huge page support, added to Kubernetes* v1.8, enables the discovery, scheduling, and allocation of huge pages as a native, first-class resource. This support addresses low latency and deterministic memory access requirements.
Details of HugePage support on Smart Edge Open
Deployment of Smart Edge Open’ minimal flavor does not enable the hugepages.
To enable hugepages either use flavor that supports hugepages (e.g. flexran) or enable hugepages by editing default_grub_params variable in group_vars and/or host_vars. Suggested value for hugepage enablement is default_hugepagesz= hugepagesz= hugepages=.
Next, following parameters can be used for tuning hugepages:
hugepage_size - size, which can be either 2M or 1G
To specify the size or amount only for a specific machine, hugepage_size and/or hugepage_amount can be provided in inventory/default/host_vars/<host_name_from_inventory>/10-open.yml (i.e., if host is named node01, then the file is inventory/default/host_vars/node01/10-open.yml). For example: