transparent huge pages witch hunt

Охота на ведьм THP

Во множестве различных ресурсов, имеющих мало-мальское отношение к системному администрированию Linux, можно встретить безаппеляционное «transparent huge pages нужно отключить». Это есть в рекомендациях (и хрен бы с ними, рекомендациями, — есть даже в скриптах!) Percona, это есть на сайте Redis: “…

  • Make sure to disable Linux kernel feature transparent huge pages, it will affect greatly both memory usage and latency in a negative way. This is accomplished with the following command: echo never > /sys/kernel/mm/transparent_hugepage/enabled.

…” — don’t do this, they’re wrong. Use “madvise” instead

Однако же у этой опции 3 значения. Среди них — madvise. Практически везде, где вам рекомендуют «отключите» — лучше ставить madvise. Потому, что если в вашей системе запущен какой-то софт, разработчики которого считают, что с THP он будет работать лучше, они используют специальный параметр для системного вызова madvise(). Софт, разработчики которого страдают от THP, madvise() с «нам нужны THP», естественно, использовать не будут. Для них, результат будет таким же, disabled.