赞
踩
急着解决问题的请点击 解决问题
- 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.
温馨提醒 您的内核中启用了透明的大页面(THP)支持。这将创建与redis的延迟和内存使用问题。
可以参考THP - yooooooo - 博客园 (cnblogs.com)
THP能减少内存分配的次数,同时可以加快子进程的fork速度。
但是redis采用了写时复制机制,一旦有数据要修改,redis不会直接修改内存数据,而是copy一份这个数据,然后进行修改,DOUBLE了。
在THP开启的情况下,如果就算只有2KB的数据,Redis也需要复制2MB的内存大页,而在常规情况下,只需要复制4KB的内存页,使得每次写命令引起的复制内存页的单位放大了512倍,这会拖慢写操作的执行时间,导致大于写操作慢查询,最终影响redis的性能。
自RHEL 6开始,THP都是默认打开的,很明显,问题是由于THP的启动导致,那么只需关闭它即可
请以root身份运行命令
echo never > /sys/kernel/mm/transparent_hugepage/enabled
执行完毕后只是暂时解决 如果想要永久解决该问题需要进入/etc/rc.local 文件添加以上命令
- # 回到初始目录下执行
- sudo vim /etc/rc.local
- # 进入编辑模式 然后在文件中新增命令 禁用THP
- echo never > /sys/kernel/mm/transparent_hugepage/enabled
在禁用THP之后,重新启动redis,就成功辣!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。