我有Ubuntu18.04服务器与500克SSD磁盘,其中有LVM和dm-密码在它上。我最近注意到写入磁盘的字节数(如vmstat -d或iostat所报告的)是不切实际的。在监视系统I/O之后,我发现当fstrim.service运行时,磁盘写入量每周发生一次。

从日志中看,似乎每周fstrim运行时都报告说,基本上所有空闲空间都被写入磁盘,尽管系统几乎处于空闲状态,最多一周内写入的内存不到10 is。
这是一种预期的行为吗?我一直认为,自上次fstrim运行以来,只应该丢弃新的空闲块,而不是每次都丢弃整个空闲空间。这使得SSD的磨损量过高(根据磁盘报告的媒体磨损值来判断)。或者它与dm-crypt的存在有某种关系?
磁盘确实支持TRIM:
hdparm -I /dev/sda | grep TRIM
* Data Set Management TRIM supported (limit 8 blocks)
* Deterministic read ZEROs after TRIM并且在dm-crypt中也启用了丢弃传递:
dmsetup table
silverbox--vg-swap: 0 19529728 linear 253:0 917964800
silverbox--vg-root: 0 917962752 linear 253:0 2048
sda3_crypt: 0 937496576 crypt aes-xts-plain64 00...0 0 8:3 4096 1 allow_discards发布于 2019-09-08 13:58:55
ATA trim命令只更改磁盘驱动器中的元数据,它绝对不对内存单元进行任何低级别的写入。如果磁盘支持deterministic trim,则返回带有零的裁剪块,但这是由控制器根据新的元数据状态执行的,而不是因为在trim命令执行时实际删除了单元格。
不幸的是,trim命令在我所知道的所有内核统计信息中都被计算为写操作。因此,iostat、sar或/sys/fs/ext4/*/lifetime_write_kbytes给出了真正的写入和trims之和。另见关于超级用户的问题。
fstrim每周运行一次,似乎释放了所有未使用的磁盘空间。例如,如果您有一个使用了50%的1TB磁盘,默认的fstrim活动将出现在统计数据中,即每周写入500 GB或每天70 GB。
底线是:写统计数据很容易被记为写的trims所主导,特别是对于中等填充的文件系统。
https://unix.stackexchange.com/questions/525530
复制相似问题