深入理解块层 I/O 处理与调度及 SCSI 子系统
1. 块层 I/O 调度器概述
I/O 调度是块层的关键功能,当读写请求经过虚拟文件系统的各层后,最终会到达块层。块层有多种 I/O 调度器,每种都有其适用场景。
1.1 无调度器(none scheduler)
无调度器不对底层物理设备做任何假设,也不执行可能与低级 I/O 控制器逻辑冲突的调度决策。基于其操作模式,它似乎是企业存储区域网络的首选调度器。
1.2 调度器选择难题
面对众多调度器选项,选择最适合需求的调度器颇具挑战。选择调度器时应结合实际应用工作负载的基准测试结果。大多数情况下,默认设置可能就足够了,只有在追求最高效率时,才需要调整默认设置。
1.3 调度器的动态更改
这些调度器具有可插拔特性,可动态更改块设备的 I/O 调度器,有以下两种方式:
- 临时更改 :通过 sysfs 检查特定磁盘设备当前活动的调度器。例如,查看 sda 磁盘的活动调度器:
[root@linuxbox ~]# cat /sys/block/sda/queue/scheduler
[mq-deadline] none bfq kyber
[root@linuxbox ~]#
若要将 sda 的调度器设置为 BFQ,可使用以下命令:
echo bfq > /sys/block/sda/queue/sc
超级会员免费看
订阅专栏 解锁全文
934

被折叠的 条评论
为什么被折叠?



