我有以下设置:
- 在 Dell PowerEdge R320 上运行的 Stock Debian 稳定版(Linux 内核 3.16.7)
- PERC H310 Mini 控制器上的 RAID1 中的两个 SATA 硬盘,显示为
/dev/sda
- dm-crypt 目标
dm-0
由/dev/sda2
- 具有单个上述物理卷的单个 LVM 卷组
dm-0
- 上述卷组中的多个逻辑卷等
dm-1
,格式为dm-2
ext4
当单个进程开始批量写入逻辑卷时,所有其他进程都会出现严重的 I/O 匮乏 - 系统变得非常迟钝(涉及 I/O 时延迟最多 30 秒)。
我认为 I/O 调度程序负责确保这种情况不会发生。我看到它sda
使用了cfq
:
# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
但其他所有设备映射器目标都报告没有 I/O 调度程序:
# cat /sys/block/dm-0/queue/scheduler
none
# cat /sys/block/dm-1/queue/scheduler
none
# cat /sys/block/dm-2/queue/scheduler
none
我的问题是,为什么设备映射器目标没有 I/O 调度,我可以启用它吗,或者如何使该系统在繁重的 I/O 负载下响应?
答案1
首先,这是完全正常的DM 设备没有任何 I/O 调度程序,如(有特殊例外)
关于您记录的低性能,请考虑您的 H310 控制器不仅没有缓存,而且甚至禁用物理磁盘的 DRAM 缓存,这意味着您的系统无法通过缓存来降低延迟。
将其与加密相结合,其中读取-修改-写入是常见行为(由于对加密容器的写访问未对齐),导致写入 I/O 性能极差。