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

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

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.

#sample /etc/fstab line before change
LABEL=/                 /                       ext3    defaults        1 1

#sample /etc/fstab line after noatime change
LABEL=/                 /                       ext3    defaults ,noatime       1 1

Kernel Network Tuning

Add the follwing to /etc/sysctl.conf

#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

Then call sysctl to make them active

sysctl -p
litespeed_wiki/config/linux-kernel-tune.txt · Last modified: 2015/07/24 15:24 by Michael Alegre