The hugepage fragmentation issue is a real pain, even on real systems.
In our systems, there are several hugepage users so they can get fragmented. We are currently jumping through loops to allow spdk to be brought up when there are enough contiguous hugepages, so lifting this requirement would be a blessing for non docker systems as well.
> EAL: Can only reserve 259 pages from 1024 requested
> Current CONFIG_RTE_MAX_MEMSEG=256 is not enough
I just noticed SPDK has a requirement of at least 5MB physically contiguous memory, which you apparently don't have. I'll try to lift this requirement and send out some patches. For now you can try setting hugepages=N option in host kernel boot options, so that the memory will be reserved before anything else and will likely be physically contiguous. If the memory is still fragmented, you could try switching to 1GB hugepages.
Out of curiosity - did you try to run the same app on the host system directly? We haven't tested SPDK in containers officially. Maybe this fragmentation is caused by docker somehow.
SPDK mailing list