Общее количество HugePages уменьшается с 6000 до 16, а количество бесплатных страниц до 0 - PullRequest
1 голос
/ 07 января 2020

Я тестирую приложение DPDK с 2M Hugepages, поэтому я изменил / proc / cmdline моей redhat VM так, чтобы она начиналась с 6000 огромных страниц, как показано ниже на моей VM с общим объемом памяти 32 ГБ.

grep Huge /proc/meminfo 
AnonHugePages:      6144 kB
HugePages_Total:    6000
HugePages_Free:     6000
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB*

Но теперь, когда я запускаю свое приложение, оно сообщает, что приложение запрашивает 5094 МБ памяти, но доступно только 32 МБ, как показано ниже:

./build/app -l 4-7 -n 4 --socket-mem 5094,5094 --file-prefix dp -w 0000:13:00.0 -w 0000:1b:00.0
EAL: Detected 8 lcore(s)
EAL: Multi-process socket /var/run/.dp_unix
EAL: Probing VFIO support...
EAL: Not enough memory available on socket 0! Requested: 5094MB, available: 32MB
EAL: FATAL: Cannot init memory
EAL: Cannot init memory
EAL: Error - exiting with code: 1
  Cause: Error with EAL initialization

А теперь, когда я снова проверяю Огромные страницы, оно только показывает 16 страниц, как показано ниже, пожалуйста, дайте мне знать, почему мои Огромные страницы уменьшены до 16 с начальных 6000, из-за которых мое приложение не может получить память.

grep Huge /proc/meminfo 
AnonHugePages:      6144 kB
HugePages_Total:      16
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

./dpdk-devbind --status

Network devices using DPDK-compatible driver
============================================
0000:13:00.0 'VMXNET3 Ethernet Controller 07b0' drv=igb_uio unused=vmxnet3
0000:1b:00.0 'VMXNET3 Ethernet Controller 07b0' drv=igb_uio unused=vmxnet3

Network devices using kernel driver
===================================
0000:04:00.0 'VMXNET3 Ethernet Controller 07b0' if=ens161 drv=vmxnet3 unused=igb_uio *Active*
0000:0b:00.0 'VMXNET3 Ethernet Controller 07b0' if=ens192 drv=vmxnet3 unused=igb_uio *Active*
0000:0c:00.0 'VMXNET3 Ethernet Controller 07b0' if=ens193 drv=vmxnet3 unused=igb_uio *Active*

Я также пытался увеличить Огромные страницы во время выполнения, но это не помогает, сначала увеличивается, но снова при запуске приложения сообщает, что память недоступна.

echo 6000 > /proc/sys/vm/nr_hugepages
echo "vm.nr_hugepages=6000" >> /etc/sysctl.conf

grep Huge /proc/meminfo 
AnonHugePages:      6144 kB
HugePages_Total:    6000
HugePages_Free:     5984
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

./build/app -l 4-7 -n 4 --socket-mem 5094,5094 --file-prefix dp -w 0000:13:00.0 -w 0000:1b:00.0 
EAL: Detected 8 lcore(s)
EAL: Multi-process socket /var/run/.dp_unix
EAL: Probing VFIO support...
EAL: Not enough memory available on socket 0! Requested: 5094MB, available: 32MB
EAL: FATAL: Cannot init memory

EAL: Cannot init memory

EAL: Error - exiting with code: 1
  Cause: Error with EAL initialization

grep Huge /proc/meminfo 
AnonHugePages:      6144 kB
HugePages_Total:      16
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Если для вашего приложения требуется 5094 страниц объемом 2 МБ, вы можете перезапустить приложение с помощью --socket-mem 5094,0.

, но если вам нужно иметь 5094 * 2, можете ли вы построить огромные страницы во время загрузки, отредактировав grub.conf как 'default_hugepagesz = 2M largepagesz = 2M largepages = 10188'

Примечание: там Огромная разница между 17.11 LTS и 18.11 LTS в том, как отображаются и используются огромные страницы.

0 голосов
/ 08 января 2020

Кажется, что была какая-то проблема с виртуальной машиной Centos 7, так как огромное количество страниц не имело никакого смысла, поэтому я воссоздал виртуальную машину, которая разрешила проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...