generated from nicolabelluti/template-ansible
Added memory role
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
# Everything that lands on the kernel cmdline goes in one marked block, leaving
|
||||
# the existing KERNEL_CMDLINE[default]+= line untouched.
|
||||
#
|
||||
# systemd.zram=0 - stop zram-generator creating the zram device
|
||||
# zswap.* - module params, must be set before first swap-out
|
||||
# ttm.pages_limit - hard cap on GTT allocation, lifted from the ~50% of RAM
|
||||
# default. 3959290 pages of 4K = ~15.1 GiB
|
||||
# ttm.page_pool_size - must match pages_limit or allocations can fail
|
||||
- name: Add BC-250 kernel parameters
|
||||
become: true
|
||||
ansible.builtin.blockinfile:
|
||||
path: /etc/default/limine
|
||||
marker: '# {mark} ANSIBLE bc250 memory'
|
||||
block: |
|
||||
KERNEL_CMDLINE[default]+=" systemd.zram=0 zswap.enabled=1 zswap.shrinker_enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20 ttm.pages_limit=3959290 ttm.page_pool_size=3959290"
|
||||
notify: Rebuild initramfs and limine entries
|
||||
|
||||
# lz4 must be in the initramfs for zswap to use it from early boot.
|
||||
- name: Add lz4 to the initramfs modules
|
||||
become: true
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/mkinitcpio.conf
|
||||
regexp: '^MODULES='
|
||||
line: 'MODULES=(lz4)'
|
||||
notify: Rebuild initramfs and limine entries
|
||||
|
||||
# CachyOS ships a udev rule that disables zswap when zram comes up.
|
||||
# An empty file with the same name overrides it.
|
||||
- name: Neutralise the CachyOS zram udev rule
|
||||
become: true
|
||||
ansible.builtin.copy:
|
||||
content: ''
|
||||
dest: /etc/udev/rules.d/30-zram.rules
|
||||
mode: '0644'
|
||||
|
||||
- name: Lower swappiness
|
||||
become: true
|
||||
ansible.builtin.copy:
|
||||
content: vm.swappiness=10
|
||||
dest: /etc/sysctl.d/99-bc250.conf
|
||||
mode: '0644'
|
||||
register: sysctl_conf
|
||||
|
||||
- name: Apply swappiness now
|
||||
become: true
|
||||
ansible.builtin.command:
|
||||
argv:
|
||||
- sysctl
|
||||
- --system
|
||||
when: sysctl_conf.changed
|
||||
changed_when: true
|
||||
|
||||
- name: Create the swap subvolume
|
||||
become: true
|
||||
ansible.builtin.command:
|
||||
argv:
|
||||
- btrfs
|
||||
- subvolume
|
||||
- create
|
||||
- /swap
|
||||
args:
|
||||
creates: /swap
|
||||
|
||||
- name: Create the swapfile
|
||||
become: true
|
||||
ansible.builtin.command:
|
||||
argv:
|
||||
- btrfs
|
||||
- filesystem
|
||||
- mkswapfile
|
||||
- --size
|
||||
- 8g
|
||||
- --uuid
|
||||
- clear
|
||||
- /swap/swapfile
|
||||
args:
|
||||
creates: /swap/swapfile
|
||||
|
||||
- name: Add the swapfile to fstab
|
||||
become: true
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/fstab
|
||||
regexp: '^/swap/swapfile'
|
||||
line: '/swap/swapfile none swap defaults 0 0'
|
||||
|
||||
- name: Apply pending initramfs changes
|
||||
ansible.builtin.meta: flush_handlers
|
||||
|
||||
- name: Reboot to apply the new kernel parameters
|
||||
become: true
|
||||
ansible.builtin.reboot:
|
||||
reboot_timeout: 600
|
||||
Reference in New Issue
Block a user