丢弃在已挂载文件系统上的未使用块
命令语法格式
fstrim [-a] [-o offset] [-l length] [-m minimum-size] [-v] mountpoint
命令描述
命令fstrim用于已挂载的文件系统,以丢弃(或“修剪(trim)”)文件系统未使用的块。 这对于固态驱动器(SSD)和精简配置存储非常有用。
默认情况下,fstrim将丢弃文件系统中所有未使用的块。可以使用选项基于范围或大小来控制此行为,如下所述。
参数mountpoint是安装文件系统的目录的路径名。
经常运行fstrim,甚至使用mount -o discard,可能会对劣质SSD设备的使用寿命产生负面影响。对于大多数台式机和服务器系统,每周一次的修剪频率是足够的。 请注意,并非所有设备都支持排队修剪,因此每个修剪命令都会对当时尝试使用该磁盘的任何其他设备造成性能损失。
命令支持的选项及含义
offset, length, minimum-size
这三个参数可以跟随乘法后缀:
- KiB(=1024),MiB(=1024*1024),GiB,TiB,PiB,EiB,ZiB,YiB依此类推。其中,iB是可选的,例如“K”具有与“KiB”相同的含义。
- 或使用后缀KB(=1000),MB(=1000*1000),GB,TB,PB,EB,ZB,YB依此类推。
-a, –all
在支持丢弃操作的设备上,修剪所有已挂载的文件系统。 其他提供的选项,如–offset,–length,–minimum,将应用于所有这些设备。由不支持丢弃操作的文件系统产生的错误,默认忽略。
-o, –offset offset
文件系统中的字节偏移量,从中开始搜索要丢弃的空闲块。 默认值为零,表示从文件系统的开头开始。
-l, –length length
搜索要丢弃的空闲块的字节数(在起始点之后)。 如果指定的值超出文件系统的末尾,则fstrim将停止在文件系统大小边界处。 默认值扩展到文件系统的末尾。
-m, –minimum minimum-size
要丢弃的最小连续可用范围,以字节为单位。 (此值在内部向上舍入为文件系统块大小的倍数。)将忽略小于此值的可用范围。 通过增加此值,对于具有严重碎片的可用空间的文件系统,fstrim操作将更快地完成,但并非所有块都将被丢弃。 默认值为零,丢弃每个空闲块。
-v, –verbose
详细执行。 使用此选项,fstrim将输出从文件系统传递到块堆栈到设备的字节数,以便进行潜在的丢弃。 从存储设备的角度来看,这个数字是最大丢弃量,因为重复调用的FITRIM ioctl将继续发送相同的扇区以便重复丢弃。
命令fstrim每次都会报告相同的潜在丢弃字节,但只有丢弃之间写入的扇区实际上会被存储设备丢弃。 此外,内核块层保留“调整丢弃范围以适应raid条带几何”、“在LVM设置中不具有调整功能的设备”等的权利。这些减少不会反映在fstrim_range.len(–length选项)中。
-h, –help
显示帮助信息。
-V, –version
显示版本信息。
退出状态
0 成功;
1 失败;
32 全部失败;
64 某些文件系统丢弃成功,某些失败;
命令fstrim –all返回0(全部成功),32(全部失败),64(一些失败,一些成功)。
相关手册
blkdiscard(8), mount(8)
参考文献
- man 8 fstrim, Version 2.32.1-0.1
- Wikipedia/Trim (computing)
更新日志
- 10/12/2018 创建文章