Performance Tuning
Optimize Linux system performance.
System Monitoring
top / htop # Process monitoring vmstat 1 # Memory statistics iostat -x 1 # Disk I/O sar -n DEV 1 # Network statistics perf top # CPU profiling
Kernel Parameters
/etc/sysctl.d/99-performance.conf
vm.swappiness = 10 net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65535 fs.file-max = 2097152 vm.dirty_ratio = 40 vm.dirty_background_ratio = 10
File Descriptor Limits
/etc/security/limits.conf
- soft nofile 65535
- hard nofile 65535
- soft nproc 65535
- hard nproc 65535
Disk I/O
Change scheduler
echo noop > /sys/block/sda/queue/scheduler
Enable trim for SSDs
fstrim -av
Network Tuning
Increase buffers
sysctl -w net.core.rmem_max=134217728 sysctl -w net.core.wmem_max=134217728
Best Practices
-
Profile before optimizing
-
Change one parameter at a time
-
Monitor impact of changes
-
Document all tuning