Hi Ed,
I presume it's a revival of this thread:
http://inbox.dpdk.org/users/ch3pr01mb8470c9675763e14954d6e3b88f...@ch3pr01mb8470.prod.exchangelabs.com/
2024-05-02 19:05 (UTC+0000), Lombardo, Ed:
[...]
> My situation is as follows:
> We were on DPDK 17.11.6 and upgraded to DPDK22.11.2 to support the Intel
> E810. Also upgraded from CentOS7 to Oracle 91.
> In DPDK 22.11.2 the VIRT memory has skyrocketed and causes major issues with
> our application that runs on 16 GB of memory (virtual appliances and low end
> remote appliances).
>
> I have also tried DPDK 23.11 and 24.03 and I also see across the DPDK
> versions that the VIRT memory has increase by a factor of 5 over DPDK 17.11
>
> Our application process shows VIRT memory is 7.6 GB with DPDK 17.11.6,
> and with DPDK 22.11.2, 23.11.2 and 24.03 the VIRT memory is ~36.6GB
>
> Our application minimum configuration needs to run with 16 GB memory when
> DPDK is enabled.
As explained in the linked thread,
high reserved VIRT does not mean high memory demand.
Running DPDK on a 16 GB machine is perfectly viable.
Something in your app or setup conflicts with the high VIRT reservation.
> Our application uses memory locking and rlimit settings to get optimal
> performance.
Does it use address space limit (prlimit -v)?
If so, this limit may be hit.
With default build options, DPDK reserves at least 32 GB of VIRT (one list)
per memory type (a combination of NUMA node + hugepage size).
This is controlled by defines in <rte_config.h>:
#define RTE_MAX_MEMSEG_LISTS 128
#define RTE_MAX_MEMSEG_PER_LIST 8192
#define RTE_MAX_MEM_MB_PER_LIST 32768
#define RTE_MAX_MEMSEG_PER_TYPE 32768
#define RTE_MAX_MEM_MB_PER_TYPE 65536
Try reducing those and rebuilding DPDK if the above is your case.
Reducing these values will limit the amount of memory available to DPDK
allocator in your app.