Differences
This shows you the differences between two versions of the page.
— |
litespeed_wiki:config:linux-kernel-tune [2015/07/24 15:24] (current) Michael Alegre created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Linux OS Tuning/Optimizations ====== | ||
+ | |||
+ | ===== High i/o wait tuning for File Servers ===== | ||
+ | |||
+ | Under “Server”→“General” tab, change “Priority” configuration to “-19”. Process priority can be set from -19 to 20, -19 is the highest, 20 is the lowest. | ||
+ | |||
+ | ===== Change to 'deadline' I/O scheduler ===== | ||
+ | * From command line (change the device 'sda' to appropriate device): | ||
+ | |||
+ | echo “deadline” > /sys/block/sda/queue/scheduler | ||
+ | |||
+ | |||
+ | |||
+ | * kernel parameter, change /boot/grub/menu.lst, add kernel parameter | ||
+ | |||
+ | elevator=deadline | ||
+ | |||
+ | ===== Change VM parameters ===== | ||
+ | There are two variables which control the behaviour of VM flushing and allocation and affect network and disk performance | ||
+ | |||
+ | * vm.dirty_background_ratio | ||
+ | * vm.dirty_ratio | ||
+ | |||
+ | To set these values from command line | ||
+ | |||
+ | echo 20 > /proc/sys/vm/dirty_background_ratio | ||
+ | echo 60 > /proc/sys/vm/dirty_ratio | ||
+ | |||
+ | to make it permanent, edit /etc/sysctl.conf: | ||
+ | |||
+ | vm.dirty_background_ratio = 20 | ||
+ | vm.dirty_ratio = 60 | ||
+ | |||
+ | |||
+ | ===== Increase readahead ===== | ||
+ | |||
+ | To get current readahead value: | ||
+ | |||
+ | $ blockdev --getra /dev/sda | ||
+ | 256 | ||
+ | |||
+ | To increase it to a higher value like 16K: | ||
+ | |||
+ | $ blockdev --setra 16384 /dev/sda | ||
+ | |||
+ | |||
+ | ===== Disable updating access time stamp for file system ===== | ||
+ | |||
+ | Edit /etc/fstab, remove "atime" attribute if there is, add "noatime" attribute. The noatime change can significantly improve your server's file i/o performance. | ||
+ | |||
+ | <code> | ||
+ | #sample /etc/fstab line before change | ||
+ | LABEL=/ / ext3 defaults 1 1 | ||
+ | |||
+ | #sample /etc/fstab line after noatime change | ||
+ | LABEL=/ / ext3 defaults ,noatime 1 1 | ||
+ | </code> | ||
+ | |||
+ | ===== Kernel Network Tuning ===== | ||
+ | |||
+ | Add the follwing to /etc/sysctl.conf | ||
+ | |||
+ | <code> | ||
+ | #increase local ports | ||
+ | net.ipv4.ip_local_port_range = 1024 65535 | ||
+ | |||
+ | #reduce the number of time_wait connections | ||
+ | #these 3 lines can reduce your time_wait count by several hundred percent. | ||
+ | #however you should not use the following lines in a NATed configuration. | ||
+ | net.ipv4.tcp_tw_reuse = 1 | ||
+ | net.ipv4.tcp_tw_recycle = 1 | ||
+ | net.ipv4.tcp_fin_timeout = 30 | ||
+ | </code> | ||
+ | |||
+ | Then call sysctl to make them active | ||
+ | |||
+ | <code> | ||
+ | sysctl -p | ||
+ | </code> | ||
+ | |||
+ | |||