Я хочу отключить transparent_hugepage (THP) в экземпляре CentOS 7 EC2, который включен по умолчанию:
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
Этот параметр можно изменить вручную:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
... но изменения теряются после перезагрузки.
Я пытался вставить echo never [...]
инструкцию в мои rc.local
и cloud.cfg
файлы, но это не сработало.
Я также попытался добавить настройку transparent_hugepage=never
в строку ядра /etc/grub.conf
(как там объяснено ), но это не сработало лучше.
Итак ... как я могу отключить THP на CentOS 7, работающем на экземпляре AWS EC2?
изменить: изменил название ... Мне нужно отключить THP и THP дефрагментации
amazon-ec2
centos7
grub
vcarel
источник
источник
Ответы:
Решение настроено , как указал @ michael-hampton. Сложность в том, что плагин vm может только настроить
/sys/kernel/mm/transparent_hugepage/enabled
параметры.Чтобы отключить
/sys/kernel/mm/transparent_hugepage/defrag
настройку, мне пришлось создать скрипт, который вызывается профилем при запуске.В итоге, полное решение:
Шаг 1 : Создайте каталог для хранения пользовательского профиля:
Шаг 2 : Создайте профиль
/etc/tuned/custom/tuned.conf
:Обратите внимание, что этот профиль наследуется от виртуального гостя , который был моим активным профилем, на самом деле выглядит подходящим для виртуализированного сервера (EC2). Вы можете просмотреть свой активный профиль с помощью команды
tuned-adm active
. Если вам интересно, вы можете проверить содержимое предопределенных профилей в/usr/lib/tuned/
Шаг 3 : Создайте скрипт
/etc/tuned/custom/script.sh
:Сделайте его исполняемым:
Шаг 4 : Активируйте новый профиль:
Теперь вы должны получить:
Это сохранится после перезагрузки.
источник
В дополнение к настройке командной строки grub, вам также необходимо настроить tuned. Но не используйте инструкции, на которые вы ссылаетесь, поскольку они настолько полны ошибок, что потребуется всего полдня, чтобы объяснить их все.
Создайте настроенный профиль (который я назову
custom
), а затем установите профиль. Он будет основан на существующем профиле, например,virtual-guest
если вы работаете на виртуальной машине (конечно, EC2) илиthroughput-performance
если вы работаете на физической машине.Создайте каталог для хранения пользовательского профиля:
Создайте пользовательский профиль
/etc/tuned/custom/tuned.conf
, например:Теперь установите профиль:
источник
Также попробуйте это
источник
Вы можете отредактировать файл /etc/rc.local и добавить в него следующую команду:
и запустить,
chmod +x /etc/rc.d/rc.local
чтобы убедиться, что скрипт будет выполнен во время загрузки. протестировано на Amazon Linux 2.источник
РЕДАКТИРОВАТЬ: ответ выше является неправильным , потому что прозрачные огромные ручки страницы отсутствуют в sysctl в данный момент. Извините за шум.
Вы можете поместить желаемые значения в
/etc/sysctl.conf
.Из справочной страницы sysctl.conf (5):
источник