Additional zram + swap tuning

This commit is contained in:
Ryan Hughes
2026-07-27 09:48:20 -04:00
parent c7f7e837b2
commit 72dfbb43cd
3 changed files with 24 additions and 17 deletions
+15 -2
View File
@@ -7,8 +7,13 @@ net.ipv4.tcp_mtu_probing=1
# Anything above 100 tells the kernel that evicting an anonymous page is
# cheaper than dropping a page-cache page it would have to re-read from disk.
# With a compressed RAM device that is true, so the disk-era default of 60
# leaves the page cache starved.
vm.swappiness=180
# leaves the page cache starved. Stop at 150: every page swapped still costs
# a compression now and a decompression on fault-back.
vm.swappiness=150
# Halve the eagerness to drop dentry/inode cache, which is costly to rebuild
# and can't spill to zram. Not lower: 0 can OOM.
vm.vfs_cache_pressure=50
# Read one page per swap-in fault. The default of 8 pays for a seek that zram
# doesn't have, and every extra page costs a separate decompression.
@@ -21,3 +26,11 @@ vm.watermark_boost_factor=0
# Keep ~1.25% of memory free instead of 0.1%, so kswapd reclaims in the
# background rather than letting allocations stall in direct reclaim.
vm.watermark_scale_factor=125
# Cap dirty pages at 64M/256M instead of the default 10%/20% of RAM, which
# lets gigabytes of writeback pile up and flush in stalling bursts.
vm.dirty_background_bytes=67108864
vm.dirty_bytes=268435456
# With bursts bounded above, the flusher can wake every 15s instead of 5s.
vm.dirty_writeback_centisecs=1500
+4
View File
@@ -0,0 +1,4 @@
# Arch's kernel enables zswap by default, which in front of swap-on-zram just
# double-compresses pages and breaks zramctl accounting. Boot-only (w!), so
# flipping it on by hand for an experiment sticks until reboot.
w! /sys/module/zswap/parameters/enabled - - - - N