内核 4.15.0-76 上 EXT4 和 XFS 之间的性能差异

内核 4.15.0-76 上 EXT4 和 XFS 之间的性能差异

操作系统:Ubuntu 18.04.4 LTS 内核版本:4.15.0-76-generic 存储类型:RAID10(4 x SSD)

问题:这是该版本内核的一个错误吗?当我们执行相同的 SQL 插入测试时,EXT4 运行速度要慢得多;XFS 在 2K INSERT + 2K UPDATE 时响应要好得多,而 EXT4 在两者中只有 59。

IOSTAT 还显示 EXT4 的利用率为 98.4%。

在此处输入图片描述

在此处输入图片描述


再次测试:一切正常,将内核升级至 5.6.0-050600-generic

外部4: 在此处输入图片描述

XFS: 在此处输入图片描述

答案1

检查底层块设备,它们非常不同。ext4 非常辛苦:377 w/s,2.94 ms 等待,98%util。xfs 没有问题:6277 w/s,0.07 ms 等待,42%util。

毫秒与微秒的块设备延迟很难用文件系统来解释。ext4 本身并不慢 40 倍。数百 IOPS 和几毫秒的延迟就像是在主轴上而不是 SSD 上。不过,这可能是损坏或调校不佳的 SSD。

使用 ext4 重新格式化性能良好的 xfs 设备(sda?)。记录文件系统创建命令和挂载选项。重新运行测试。这将是一个更公平的比较,只改变一个变量:文件系统类型。

答案2

我找到了可能的答案,

“cat /sys/block/{block device}/queue/scheduler” 表示系统正在使用“cfq”,当我们有 SSD/NVMe 驱动器时,这是一个问题。将其更改为“deadline”或“noop”可解决此问题,详细说明请参考 Ubuntu wiki:https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers

CFQ 调度程序已经消失是最新的稳定内核,但这是运行旧版本内核的 Ubuntu 18,手动更改 IO 调度程序可以解决这个问题。

相关内容