我正在尝试通过ansible禁用VHP上的THP,因为它会干扰Redis(如果启用了Redis,则会导致延迟和更多使用问题)禁用THP的命令是,"echo never > /sys/kernel/mm/transparent_hugepage/enabled"
但它似乎无法与简单的Shell角色一起使用如下所示。
- name: Disable THP support (causes latency and mem usage issues with redis)
shell: echo never {{ ">" }} /sys/kernel/mm/transparent_hugepage/enabled
become: yes
become_method: sudo
become_user: root
Run Code Online (Sandbox Code Playgroud)
这是ansible输出:
任务[Disable-THP:禁用THP支持(导致Redis的延迟和内存使用问题)] ***更改:[127.0.0.1] => {“ changed”:true,“ cmd”:“ echo never> / sys / kernel / mm / transparent_hugepage / enabled“,” delta“:” 0:00:00.003939“,” end“:” 2018-07-09 12:22:33.183451“,” rc“:0,” start“:” 2018 -07-09 12:22:33.179512“,” stderr“:”“,” stderr_lines“:[],” stdout“:”“,” stdout_lines“:[]}
在此之后,我将ssh放入虚拟机并启动redis-server,它仍然会给我警告消息。
警告您在内核中启用了透明大页面(THP)支持。这将在Redis中造成延迟和内存使用问题。要解决此问题,请以根用户身份运行命令“从不回显> / sys / kernel / mm / transparent_hugepage / enabled”,并将其添加到您的/etc/rc.local中,以便在重启后保留设置。禁用THP后,必须重新启动Redis。
我是否在使用ansible脚本时做错了事,或者有人可以帮助我解决这个简单的shell命令为何不起作用的问题?
Br,维克多
更新:我对ansible角色进行了少许修改,以检查文件的内容是否实际更改。该角色现在看起来像这样: …