文件系统对硬件存储调用丢弃操作对于固态硬盘的最佳使用寿命和精简配置虚拟硬盘的空间回收都很重要。
关于支持的信息可以从 Linux 文档来源轻松获得,但我没有找到针对 Windows 的类似资源。
我已经配置了虚拟驱动器以连接到运行 Windows 11 的虚拟机。一个驱动器专门用于交换,虽然系统当前操作显示交换使用量很少,但我没有发现任何迹象表明 Windows 已通过硬件操作释放了以前分配的空间。
Windows 如何支持硬件丢弃(例如通过 NTFS),是否还支持管理页面文件?
答案1
mount -o discard
默认情况下,NTFS 会在文件被截断或删除时自动发出丢弃指令(与 Linux类似);请参阅fsutil behavior query disableDeleteNotify
有关删除时丢弃指令的信息。如果禁用此功能,则“碎片整理和优化”任务仍将大约每月一次批量丢弃所有分区中所有未使用的扇区。
在 Hyper-V 中运行时,Windows 可以识别精简 VHD,并且可能对它们进行稍微特殊的处理(但没有理由它不能与其他提供带有丢弃支持的虚拟 HDD 的 VM 软件一起使用)。
但一般来说交换区域(pagefile.sys)是固定大小的,预先分配文件,其中所有更新都发生在完全相同的逻辑扇区上;换句话说是在正常运行期间没有“释放”的空间。
对于就地覆盖发出丢弃指令是没有意义的——如果新数据被写入同一个逻辑扇区,磁盘会自动知道旧数据可以被丢弃,因为不再有扇区映射到它。(这与在未使用 TRIM 时防止 SSD “填满”的机制相同。)