SCROLL
Среднее время на прочтение: 2 мин.

Отключение Transparent Huge Pages (THP) в Linux

Transparent Huge Pages (THP) — это система управления памятью Linux, которая сокращает накладные расходы на поиск в буфере предварительного просмотра перевода (TLB) на машинах с большим объемом памяти за счет использования страниц памяти большего размера.

При использовании к примеру MySQL, включенный THP может негативно повлиять на производительность, вызывая фрагментацию памяти, повышенную склонность к подкачке и дополнительные накладные расходы. Отключение THP обычно рекомендуется для серверов MySQL, особенно с высокой рабочей нагрузкой, для поддержания постоянной и оптимизированной производительности.

Для отключения THP при загрузке системы, создадим сервисный файл для системы инициализации Linux. Ниже приведу примеры как для Systemd, так и для систем инициализации System V init.

Содержание

Systemd

JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI5JUQxJTgyJUQwJUI1JTIwJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQxJTgzJUQxJThFJUQxJTg5JUQwJUI4JUQwJUI5JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJTJGZXRjJTJGc3lzdGVtZCUyRnN5c3RlbSUyRmRpc2FibGUtdHJhbnNwYXJlbnQtaHVnZS1wYWdlcy5zZXJ2aWNlJTIwJUQxJTgxJTIwJUQxJTgxJUQwJUJFJUQwJUI0JUQwJUI1JUQxJTgwJUQwJUI2JUQwJUI4JUQwJUJDJUQxJThCJUQwJUJDLg==

/etc/systemd/system/disable-transparent-huge-pages.service
[Unit]
Description=Disable Transparent Huge Pages (THP)
RGVmYXVsdERlcGVuZGVuY2llcyUzRG5v
After=sysinit.target local-fs.target
QmVmb3JlJTNEbW9uZ29kLnNlcnZpY2U=

JTVCU2VydmljZSU1RA==
Type=oneshot
RXhlY1N0YXJ0JTNEJTJGYmluJTJGc2glMjAtYyUyMCdlY2hvJTIwbmV2ZXIlMjAlN0MlMjB0ZWUlMjAlMkZzeXMlMkZrZXJuZWwlMkZtbSUyRnRyYW5zcGFyZW50X2h1Z2VwYWdlJTJGZW5hYmxlZCUyMCUzRSUyMCUyRmRldiUyRm51bGwn

JTVCSW5zdGFsbCU1RA==
WantedBy=basic.target

JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUI3JUQwJUI4JUQxJTgyJUQwJUI1JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQxJThCJTIwc3lzdGVtZCUyMHVuaXQlMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQjQlRDAlQkUlRDElODElRDElODIlRDElODMlRDAlQkYlRDAlQkQlRDAlQkUlRDElODElRDElODIlRDAlQjglMjAlRDElODElRDAlQkUlRDAlQjclRDAlQjQlRDAlQjAlRDAlQkQlRDAlQkQlRDAlQkUlRDAlQjMlRDAlQkUlMjAlRDElODElRDAlQjUlRDElODAlRDAlQjIlRDAlQjglRDElODElRDAlQjAu

c3lzdGVtY3RsJTIwZGFlbW9uLXJlbG9hZA==

JUQwJTk3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUI4JUQxJTgyJUQwJUI1JTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJUQxJTgzLg==

c3lzdGVtY3RsJTIwc3RhcnQlMjBkaXNhYmxlLXRyYW5zcGFyZW50LWh1Z2UtcGFnZXM=

Чтобы убедится, что для параметра THP успешно установлено значение [never], выполним команду.

Y2F0JTIwJTJGc3lzJTJGa2VybmVsJTJGbW0lMkZ0cmFuc3BhcmVudF9odWdlcGFnZSUyRmVuYWJsZWQ=

Чтобы сервис запускался при каждой загрузке системы, выполните следующую команду.

c3lzdGVtY3RsJTIwZW5hYmxlJTIwZGlzYWJsZS10cmFuc3BhcmVudC1odWdlLXBhZ2Vz

System V Init

Создайте следующий файл /etc/init.d/disable-transparent-hugepages с содержимым.

/etc/init.d/disable-transparent-hugepages
JTIzISUyRmJpbiUyRmJhc2g=
### BEGIN INIT INFO
JTIzJTIwUHJvdmlkZXMlM0ElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkaXNhYmxlLXRyYW5zcGFyZW50LWh1Z2VwYWdlcw==
# Required-Start:    $local_fs
JTIzJTIwUmVxdWlyZWQtU3RvcCUzQQ==
JTIzJTIwWC1TdGFydC1CZWZvcmUlM0ElMjAlMjAlMjAlMjBtb25nb2QlMjBtb25nb2RiLW1tcy1hdXRvbWF0aW9uLWFnZW50
# Default-Start:     2 3 4 5
JTIzJTIwRGVmYXVsdC1TdG9wJTNBJTIwJTIwJTIwJTIwJTIwJTIwMCUyMDElMjA2
JTIzJTIwU2hvcnQtRGVzY3JpcHRpb24lM0ElMjBEaXNhYmxlJTIwTGludXglMjB0cmFuc3BhcmVudCUyMGh1Z2UlMjBwYWdlcw==
JTIzJTIwRGVzY3JpcHRpb24lM0ElMjAlMjAlMjAlMjAlMjAlMjAlMjBEaXNhYmxlJTIwTGludXglMjB0cmFuc3BhcmVudCUyMGh1Z2UlMjBwYWdlcyUyQyUyMHRvJTIwaW1wcm92ZQ==
#                    database performance.
### END INIT INFO

Y2FzZSUyMCUyNDElMjBpbg==
JTIwJTIwc3RhcnQp
    if [ -d /sys/kernel/mm/transparent_hugepage ]; then
JTIwJTIwJTIwJTIwJTIwJTIwdGhwX3BhdGglM0QlMkZzeXMlMkZrZXJuZWwlMkZtbSUyRnRyYW5zcGFyZW50X2h1Z2VwYWdl
    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
JTIwJTIwJTIwJTIwJTIwJTIwdGhwX3BhdGglM0QlMkZzeXMlMkZrZXJuZWwlMkZtbSUyRnJlZGhhdF90cmFuc3BhcmVudF9odWdlcGFnZQ==
JTIwJTIwJTIwJTIwZWxzZQ==
      return 0
    fi

    echo 'never' | tee ${thp_path}/enabled > /dev/null

    unset thp_path
    ;;
esac

Сделайте его исполняемым.

chmod 755 /etc/init.d/disable-transparent-hugepages

Запустите скрипт.

/etc/init.d/disable-transparent-hugepages start

JUQwJUE3JUQxJTgyJUQwJUJFJUQwJUIxJUQxJThCJTIwJUQxJTgzJUQwJUIxJUQwJUI1JUQwJUI0JUQwJUI4JUQxJTgyJUQxJTgxJUQxJThGJTJDJTIwJUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQwJUIwJUQxJTgwJUQwJUIwJUQwJUJDJUQwJUI1JUQxJTgyJUQxJTgwJUQwJUIwJTIwVEhQJTIwJUQxJTgzJUQxJTgxJUQwJUJGJUQwJUI1JUQxJTg4JUQwJUJEJUQwJUJFJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUJFJTIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJTVCbmV2ZXIlNUQlMkMlMjAlRDAlQjIlRDElOEIlRDAlQkYlRDAlQkUlRDAlQkIlRDAlQkQlRDAlQjglRDAlQkMlMjAlRDAlQkElRDAlQkUlRDAlQkMlRDAlQjAlRDAlQkQlRDAlQjQlRDElODMu

Y2F0JTIwJTJGc3lzJTJGa2VybmVsJTJGbW0lMkZ0cmFuc3BhcmVudF9odWdlcGFnZSUyRmVuYWJsZWQ=

JUQwJUE3JUQxJTgyJUQwJUJFJUQwJUIxJUQxJThCJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI4JUQxJTgxJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQwJUJCJUQxJTgxJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUI4JTIwJUQwJUJBJUQwJUIwJUQwJUI2JUQwJUI0JUQwJUJFJUQwJUI5JTIwJUQwJUI3JUQwJUIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUI3JUQwJUJBJUQwJUI1JTIwJUQxJTgxJUQwJUI4JUQxJTgxJUQxJTgyJUQwJUI1JUQwJUJDJUQxJThCJTJDJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQxJTgyJUQwJUI1JTIwJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQxJTgzJUQxJThFJUQxJTg5JUQxJTgzJUQxJThFJTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJTgzLg==

dXBkYXRlLXJjLmQlMjBkaXNhYmxlLXRyYW5zcGFyZW50LWh1Z2VwYWdlcyUyMGRlZmF1bHRz

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.