44 lines
1.4 KiB
YAML
44 lines
1.4 KiB
YAML
---
|
|
- name: Configure kernel memory overcommit
|
|
ansible.posix.sysctl:
|
|
name: vm.overcommit_memory
|
|
value: "1"
|
|
state: present
|
|
sysctl_set: true
|
|
reload: true
|
|
|
|
- name: Check if transparent_hugepage is set in GRUB
|
|
ansible.builtin.shell: grep -E '^GRUB_CMDLINE_LINUX_DEFAULT=.*transparent_hugepage=' /etc/default/grub
|
|
register: thp_check
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Add transparent_hugepage if not present
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/default/grub
|
|
regexp: '^(GRUB_CMDLINE_LINUX_DEFAULT="[^"]*)"$'
|
|
line: '\1 transparent_hugepage=madvise"'
|
|
backrefs: true
|
|
when: thp_check.rc != 0
|
|
notify: Update GRUB
|
|
register: grub_updated
|
|
|
|
- name: Check current THP runtime setting
|
|
ansible.builtin.shell: cat /sys/kernel/mm/transparent_hugepage/enabled
|
|
register: current_thp
|
|
changed_when: false
|
|
|
|
- name: Disable THP at runtime (if not already set to madvise)
|
|
ansible.builtin.shell: |
|
|
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
|
|
echo madvise > /sys/kernel/mm/transparent_hugepage/defrag
|
|
when: "'[madvise]' not in current_thp.stdout"
|
|
|
|
- name: Warn user about reboot requirement
|
|
ansible.builtin.debug:
|
|
msg: |
|
|
WARNING: GRUB configuration has been updated with transparent_hugepage=madvise
|
|
A REBOOT IS REQUIRED for this change to take effect permanently.
|
|
The setting has been applied at runtime temporarily.
|
|
when: grub_updated is changed
|