简介

redis启动的时候会WARNING提示:

15495:S 12 Jul 21:58:07.214 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

这个参数影响是redis的延迟和内存使用率。

transparent_hugepage

RHEL系列的操作系统,默认都是启用transparent_hugepage

Huge Pages是从Linux Kernel 2.6后被引入的。

目的是使用更大的内存页面以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能。

传统大页很难手动管理, 而且通常需要对代码进行重大更改才能有效地使用

透明大页(Transparent Huge Pages)缩写为THP,这个是RHEL 6开始引入的一个功能。THP 是一个抽象层, 可以自动创建、管理和使用传统大页的大多数方面。

TLB(Translation lookaside buffer)是路转换缓冲,或称为页表缓冲;里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。又称为快表技术。

THP就是为了减轻TLB的压力。

但是对于一些应用会造成一些延迟,而且连续内存的分配对内存的使用率也有影响。

所以redis在启动的时候就建议关闭THP

动态修改

echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled

可以直接将命令加到开机启动执行的脚本,来自动设置。

也可以通过grub参数,在启动内核的时候就关闭THP

GRUB_CMDLINE_LINUX="transparent_hugepage=never"