使用ecs centos6.5
装redis后提示
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.
于是我在
/etc/rc.local中添加了如下一句
echo never > /sys/kernel/mm/transparent_hugepage/enabled
可是重启后任然无效,需要手动执行一次
怎么回事呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在CentOS 6.5中,有时直接修改/etc/rc.local
可能不会按预期执行,这可能是由于权限、执行顺序或者该文件未被正确启用等原因导致的。为了解决这个问题,你可以尝试以下几种方法:
确保rc.local可执行:首先检查/etc/rc.local
文件是否具有执行权限。可以使用命令chmod +x /etc/rc.local
来添加执行权限。
检查rc.local是否被systemd管理:CentOS 7开始默认使用systemd,但CentOS 6.5使用的是Upstart或SysVinit。尽管如此,确认systemd是否存在以及它是否影响了rc.local
的执行也是个好主意。如果存在systemd且影响了执行,你可能需要创建一个systemd服务单元来替代或额外配置。
使用sysvinit方式:确保SysV init脚本正确链接到启动目录。通常,通过运行chkconfig --add rc.local
和chkconfig rc.local on
来实现。这会确保rc.local
在系统启动时被执行。
直接编辑grub配置:为了更彻底地禁用THP,你也可以考虑直接编辑GRUB配置来禁止透明大页。编辑/etc/default/grub
文件,找到GRUB_CMDLINE_LINUX
这一行,加入transparent_hugepage=never
参数,例如:
GRUB_CMDLINE_LINUX="... crashkernel=auto rd.lvm.lv=vg_centos6/root rd.lvm.lv=vg_centos6/swap rhgb quiet transparent_hugepage=never"
然后运行grub2-mkconfig -o /boot/grub2/grub.cfg
更新GRUB配置,并重启系统。
临时解决:虽然这不是长久之计,但作为临时解决方案,可以在用户数据脚本或者其他开机启动的服务中加入执行禁用THP的命令,以确保每次系统启动后自动执行。
请按照上述步骤逐一尝试,直到问题得到解决。记得每次更改后测试Redis是否正常启动且THP已被正确禁用。您也可以通过ECS一键诊断全面排查并修复ECS问题。