Kernel Performance Tuning

Linux kernel parameters directly affect system performance. This guide covers critical sysctl settings and kernel optimizations.

Memory Optimization

# /etc/sysctl.d/99-memory.conf
vm.swappiness = 10
vm.dirty_ratio = 40
vm.dirty_background_ratio = 10
vm.dirty_expire_centisecs = 3000
vm.overcommit_memory = 0
vm.nr_hugepages = 1024

Network Stack Optimization

# /etc/sysctl.d/99-network.conf
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_syncookies = 1

File System Limits

# /etc/sysctl.d/99-fs.conf
fs.file-max = 2097152
fs.nr_open = 2097152
fs.inotify.max_user_watches = 524288

Apply Changes

sudo sysctl --system

Conclusion

These kernel parameters can provide 20-30% performance improvement. Always validate in test environment before production.