Linux I/O 调度器是Linux内核中的一个组成部分,是一个以块式 I/O 访问存储卷的进程。
目前 Linux 上有如下几种 I/O 调度算法:
1. noop – 通常用于内存存储的设备。
2. cfq – 完全公平调度器。进程平均使用IO带宽。
3. Deadline – 针对延迟的调度器,每一个 I/O,都有一个最晚执行时间。
4. Anticipatory – 启发式调度,类似 Deadline 算法,但是引入预测机制提高性能。
查看设备当前的 I/O 调度器:
“`
# cat /sys/block/
“`
假设磁盘名称是 `/dev/sdc`:
“`
# cat /sys/block/sdc/queue/schedulernoop anticipatory deadline [cfq]
“`
### 如何改变硬盘设备 I/O 调度器
使用如下指令:
“`
# echo {SCHEDULER-NAME} > /sys/block/
“`
比如设置 noop 调度器:
“`
# echo noop > /sys/block/sdc/queue/scheduler
“`
以上设置重启后会失效,要想重启后配置仍生效,需要在内核启动参数中将 `elevator=noop` 写入 `/boot/grub/menu.lst`:
#### 1. 备份 menu.lst 文件
“`
cp -p /boot/grub/menu.lst /boot/grub/menu.lst-backup
“`
#### 2. 更新 /boot/grub/menu.lst
将 `elevator=noop` 添加到文件末尾,比如:
“`
kernel /vmlinuz-2.6.16.60-0.91.1-smp root=/dev/sysvg/root splash=silent splash=off showopts elevator=noop
“`
为各位朋友分享的相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多