6.5. 加快丢弃操作
VDO 为系统上所有的 LVM-VDO 设备设置最大允许的 DISCARD (TRIM)扇区的大小。默认大小为 8 个扇区,相当于一个 4KiB 块。增加 DISCARD 大小可以显著提高丢弃操作的速度。但是,在提高丢弃性能和维护其他写操作速度之间有一个权衡。
最佳 DISCARD 大小因存储堆栈而异。非常大和非常小的 DISCARD 扇区可能会降低性能。使用不同的值进行试验,以发现一个令人满意的结果。
对于存储本地文件系统的 LVM-VDO 卷,最好使用 8 个扇区的 DISCARD 大小,这是默认设置。对于充当 SCSI 目标的 LVM-VDO 卷,一个中等大小的 DISCARD 大小,如 2048 个扇区(相当于 1 MB 丢弃),工作最佳。建议最大 DISCARD 大小不超过 10240 个扇区,它转换为 5 MB 丢弃。在选择大小时,请确保它是 8 的倍数,因为如果小于 8 个扇区,VDO 可能无法有效地处理丢弃。
流程
为 DISCARD 扇区设置新的最大大小:
echo <number-of-sectors> > /sys/kvdo/max_discard_sectors
# echo <number-of-sectors> > /sys/kvdo/max_discard_sectors
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<number-of-sectors>
替换为扇区数。此设置会一直保留,直到重启为止。可选:要在重启后对 DISCARD 扇区进行持久性更改,请创建一个自定义
systemd
服务:使用以下内容创建一个新的
/etc/systemd/system/max_discard_sectors.service
文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<number-of-sectors>
替换为扇区数。- 保存文件并退出。
重新载入服务文件:
systemctl daemon-reload
# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用新服务:
systemctl enable max_discard_sectors.service
# systemctl enable max_discard_sectors.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
可选:如果要使缩放调控器更改持久,请检查是否启用了
max_discard_sectors.service
:systemctl is-enabled max_discard_sectors.service
# systemctl is-enabled max_discard_sectors.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow