内核支持的四种IO调度算法
# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
cfq 完全公平IO调度算法。内核会为每个进程都维护一个IO队列,内核每次都从每个进程IO队列执行一个IO,然后再去执行下一个进程队列中的IO,如此循环。
anticipatory 预读算法。旧版内核默认算法。比较适合比较缓慢的存储设备。当内核选择了一个IO去执行后,他会消耗大约2毫秒时间去思考后面会继续有哪些IO,这些IO会涉及到存储设备哪个地方的数据,然后会提前去读取。
deadline 内核总是想在执行更多的IO。比较适合要求实时性比较强的环境。
noop 非常普通算法, 按招进程产生的IO的时间进行排序,哪个IO先产生,内核就会去执行它。
如何更改?
临时更改:
# echo "deadline" > /sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
永久修改:
# vim grub.conf
....
kernel /vmlinuz-2.6.18-274.el5 ro root=LABEL=/ rhgb quiet elevator=deadline
===========================================================
网络子系统
1、如何用工具检测当前网络的工作状态
2、调整:
增加带宽
调整应用程序
调整内核参数
增加网卡
# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
eth0:12560602 181777 0 0 0 0 0 0 421085182