当然,一定有更好的方法来处理。。。
为了确保在其他服务启动之前禁用THP,应该创建一个在启动期间禁用THP的服务文件。这是某些开源项目推荐的方法,例如
MongoDB - Disable Transparent Huge Pages (THP)
.
放置服务文件
[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target
在远程节点上,通过
- name: Create a service file in order to disable THP automatically
copy:
src: disable-thp.service
dest: /etc/systemd/system/disable-thp.service
比,一项任务就能完成任务
- name: Make sure Transparent Huge Pages (THP) are disabled
systemd:
state: started
enabled: yes
name: disable-thp
将CLI结果双重检查为的输出
systemctl status disable-thp
â disable-thp.service - Disable Transparent Huge Pages (THP)
Loaded: loaded (/etc/systemd/system/disable-thp.service; enabled; preset: disabled)
Active: inactive (dead) since Thu 2024-03-01 10:00:00 CET; 11 days ago
Duration: 39ms
Process: 884 ExecStart=/bin/sh -c echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && ...
Main PID: 884 (code=exited, status=0/SUCCESS)
CPU: 4ms
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
cat /sys/kernel/mm/transparent_hugepage/defrag
always defer defer+madvise madvise [never]
进一步阅读