Recently, I decided to read up on the Arch Wiki because I was bored, and I decided to read on the Improving performance pages. I found some cool topics and settings, this post is simply an overview of the ones I use and have configured, and others that don’t come from the wiki at all but that I have found somewhere on the internet.
Relevant links are added where available, expect this document to update frequently :3
Kernel parameters
Clock
Improves game performance at the cost of a small reduction in clock accuracy. Only in use on my laptop.
Sources:
tsc=reliable clocksource=tsczswap
TLDR for why zswap and not zram: zswap is best if you already have a swap device (e.g. a swapfile), zram works best if you don’t have swap.
Sources:
- https://askubuntu.com/questions/471912/zram-vs-zswap-vs-zcache-ultimate-guide-when-to-use-which-one
- https://wiki.archlinux.org/title/Zswap
zswap.enabled=1 zswap.shrinker_enabled=1 zswap.compressor=lz4ACPI alarm
Sets the kernel to use ACPI alarms instead of HPET, enabled on my laptop.
Sources:
rtc_cmos.use_acpi_alarm=1Sysctl
Swappiness
Lower the default swappiness to increase responsiveness, as i have 32G and up with system memory on all my systems.
Sources:
vm.swappiness = 35Network tuning
A couple minor tweaks, TLDR:
- Enable TCP fast open
- Attempt to probe for largest possible MTU
- Set a larger starting MTU for probing
Sources:
- https://wiki.archlinux.org/title/Sysctl#Improving_performance
- https://kernel.org/doc/html/latest/networking/ip-sysctl.html
- https://blog.cloudflare.com/path-mtu-discovery-in-practice/
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_base_mss = 1024Others
Power profiles
I manage my power profiles manually using Power-profiles-daemon and powerprofilesctl:
powerprofilesctl set <power-saver|balanced|performance>