Table of Contents

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

echo “deadline” > /sys/block/sda/queue/scheduler
elevator=deadline

Change VM parameters

There are two variables which control the behaviour of VM flushing and allocation and affect network and disk performance

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.

#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