Requirements: 

  • Linux and Unix like OS (Redhat,CentOS, etc)
  • SSH

Most people when they try to optimize their servers they always say tweak mysql, install APC, Xcache, or something similar but most people forget about optimizing the HDD. SSEC/BC often cause high I/O. You usually have to upgrade your hdd to 10k rpm+ but with noatime, you might not need to do that. 

My I/O was around 1500-2000 blocks/a sec. With noatime modification I was able to reduce it to under 500. That's atleast a 300% improvement if I do my math correctly. I remember reading a blog, someone with raid 0, gained 900% in improvements when they changed to noatime.

What's noatime?

Linux has a special mount option for file systems called noatime. If this option is set for a file system in /etc/fstab, then reading acceBlackHatCloaker will no longer cause the atime information (last access time - don't mix this up with the last modified time - if a file is changed, the modification date will still be set) that is associated with a file to be updated (in reverse this means that if noatime is not set, each read access will also result in a write operation). Therefore, using noatime can lead to significant performance gains. Linux has a special mount option for file systems called noatime. If this option is set for a file system in /etc/fstab, then reading acceBlackHatCloaker will no longer cause the atime information (last access time - don't mix this up with the last modified time - if a file is changed, the modification date will still be set) that is associated with a file to be updated (in reverse this means that if noatime is not set, each read access will also result in a write operation). Therefore, using noatime can lead to significant performance gains. 
Warnings
I'm a noob. However I did on my server and it worked. Also if you google noatime, you will a lot of threads on it and how it improves I/O. Use at your own risk. However I don't think there's any risk.

Step One.
pico /etc/fstab (or whatever you use "nano", "vi" etc)

Step Two.
Next add "noatime" into the file. I added noatime to 4 mounts. My /home /dir /var and /usr (usually the partitions which are of ext3 type). For me those 4 usually cause the most I/O. Most people's fstab should look like mine below except without the "noatime" line in there. I did read somewhere that, you should not add noatime to /proc and /boot. The 4 I listed should be good.

Step Three.
Reboot your sytem

 

 

Explaination on HOWTO edit the /etc/fstab

This is the usual /etc/fstab file most of us have. You have 2 partitions of type ext3, others may have more partitions.
To use the noatime mod, you just need to edit the parameters of the partition which have the type ext3 by adding ",noatime" after the words "defaults" but before the 2 numeric coloums. After editing your /etc/fstab must look like

LABEL=/                 /                       ext3    defaults,noatime        1 1
LABEL=/boot             /boot                   ext3    defaults,noatime        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda2         swap                    swap    pri=0,defaults        0 0

If your fstab shows multiple partitions with type ext3, you can safely do this mod to all such partition. After making the changes you need to reboot the server.

Caution: Do not add or delete any row in the fstab file. Just edit the rows with ext3 partition type as stated above.

After you reboot use the command "cat /etc/mtab" to see what partition parameters are actually loaded on the system. It shoud show you the words "noatime" against the partition you just edited.

This is what my /etc/fstab and /etc/mtab looks like after implementing the noatime mod

LABEL=/                 /                       ext3    defaults,noatime        1 1
LABEL=/tmp              /tmp                    ext3    defaults,noatime        1 2
LABEL=/home             /home                   ext3    defaults,noatime        1 2
LABEL=/var              /var                    ext3    defaults,noatime        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda6         swap                    swap    defaults        0 0

 

/dev/sda1 / ext3 rw,noatime 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/sda5 /tmp ext3 rw,noatime 0 0
/dev/sda3 /home ext3 rw,noatime 0 0
/dev/sda2 /var ext3 rw,noatime 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0