Вопрос или проблема
В моем /etc/sysctl.conf
указано: vm.nr_hugepages = 20484
Но (даже после sysctl -p
) я получил:
[root@vm04-oracle-19c ~]# cat /proc/meminfo | grep -i hugepages
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
FileHugePages: 0 kB
HugePages_Total: 18933
HugePages_Free: 46
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
[root@vm04-oracle-19c ~]#
Почему это происходит? HugePages_Total
должен быть 20484
Ответ или решение
Ваша ситуация, когда значение vm.nr_hugepages
в файле /etc/sysctl.conf
не совпадает с действительным значением HugePages_Total
, связано с особенностями настройки Huge Pages в Linux.
Причины несоответствия
-
Значения kernel и sysctl:
- Параметр
vm.nr_hugepages
указывает только желаемое количество Huge Pages, которое вы хотите выделить, но Faktiska выделенные Huge Pages могут отличаться в зависимости от состояния системы и других конфигураций. - Фактическое значение
HugePages_Total
отражает текущее количество Huge Pages, которое было выделено ядром.
- Параметр
-
Нехватка памяти:
- Возможно, система не может выделить необходимое количество Huge Pages из-за недостатка свободной памяти. Проверьте, достаточно ли у вас доступной физической памяти для выделения 20484 Huge Pages.
-
Перезагрузка системы:
- Если вы изменили значение
vm.nr_hugepages
, вам может потребоваться перезагрузить систему, чтобы новые значения вступили в силу. Однако в большинстве случаев командаsysctl -p
должна обновлять параметры сразу.
- Если вы изменили значение
-
Необходимые права:
- Убедитесь, что вы выполняете команду с привилегиями суперпользователя, чтобы изменения могли быть успешно применены.
Решение проблемы
Чтобы устранить несоответствие между vm.nr_hugepages
и HugePages_Total
, вы можете выполнить следующие шаги:
-
Проверьте доступную память:
- Выполните команду
free -m
илиcat /proc/meminfo
, чтобы узнать, хватает ли в системе свободной памяти для выделения нужного количества Huge Pages.
- Выполните команду
-
Увеличьте значение Huge Pages:
- Если памяти достаточно, попробуйте установить необходимое значение Huge Pages вручную:
echo 20484 > /proc/sys/vm/nr_hugepages
- Если памяти достаточно, попробуйте установить необходимое значение Huge Pages вручную:
-
Перезагрузка:
- Если изменения не вступили в силу, рассмотрите возможность перезагрузки системы.
-
Проверьте журнал ошибок:
- Если проблемы продолжаются, проверьте системные журналы (например,
dmesg
), чтобы удостовериться, нет ли в них ошибок, связанных с выделением памяти.
- Если проблемы продолжаются, проверьте системные журналы (например,
-
Конфигурация системы:
- Убедитесь, что у вас правильно настроено использование Huge Pages. Если у вас виртуализированное окружение или специфические настройки процессора, это может влиять на поведение Huge Pages.
Заключение
Несоответствие между vm.nr_hugepages
и HugePages_Total
может быть вызвано несколькими факторами, включая недостаток памяти или необходимость настройки системы. Следуя предложенным шагам, вы сможете выявить и устранить причину проблемы.