系统出现以下情况时,我们认为该系统存在I/O性能问题:系统等待I/O的时间超过50%;一个设备的平均队列长度大于5。
我们可以通过诸如vmstat等命令,查看CPU的wa等待时间,以得到系统是否存在I/O性能问题的准确信息。I/O性能调整方法:
1。修改I/O调度算法。
Linux已知的I/O调试算法有4种:
deadline - Deadline I/O scheduler as - Anticipatory I/O scheduler cfq - Complete Fair Queuing scheduler noop - Noop I/O scheduler
可以编辑/etc/yaboot.conf文件修改参数elevator得到。
# vi /etc/yaboot.conf image=/vmlinuz-2.6.9-11.EL label=linux read-only initrd=/initrd-2.6.9-11.EL.img root=/dev/VolGroup00/LogVol00 append="elevator=cfq rhgb quiet"
2。文件系统调整。
对于文件系统的调整,有几个公认的准则:
将I/O负载相对平均的分配到所有可用的磁盘上;
选择合适的文件系统,Linux内核支持reiserfs、ext2、ext3、jfs、xfs等文件系统;
# mkfs -t reiserfs -j /dev/sdc1 文件系统即使在建立后,本身也可以通过命令调优;
tune2fs (ext2/ext3) reiserfstune (reiserfs) jfs_tune (jfs)
3。文件系统
Mount时可加入选项noatime、nodiratime。
# vi /etc/fstab … /dev/sdb1 /backup reiserfs acl, user_xattr, noatime, nodiratime 1 1 4。
调整块设备的READAHEAD,调大RA值。
[root@overflowuid ~]# blockdev --report RO RA SSZ BSZ StartSec Size Device … rw 256 512 4096 0 71096640 /dev/sdb w 256 512 4096 32 71094240 /dev/sdb1 [root@overflowuid ~]# blockdev --setra 2048 /dev/sdb1 [root@overflowuid ~]# blockdev --report RO RA SSZ BSZ StartSec Size Device … rw 2048 512 4096 0 71096640 /dev/sdb rw 2048 512 4096 32 71094240 /dev/sdb1