Команда ATA trim
только изменяет метаданные на жестком диске, она определенно не выполняет записи низкого уровня в ячейки памяти. Если диск поддерживает deterministic trim
, обрезанный блок возвращается с нулями, однако это делается контроллером на основе нового состояния метаданных, а не потому, что ячейки были фактически стерты во время команды trim
.
trim
команды, к сожалению, учитываются как записи во всей статистике ядра, о которой я знаю. Таким образом, iostat
или sar
или /sys/fs/ext4/*/lifetime_write_kbytes
дают сумму истинных операций записи и обрезки . См. также вопрос о суперпользователе .
fstrim
при запуске раз в неделю освобождает все неиспользуемое дисковое пространство. Например, если у вас есть диск емкостью 1 ТБ, который используется на 50 %, активность по умолчанию fstrim
отображается в статистике как 500 ГБ записи в неделю или 70 ГБ в день.
Суть в том, что:в статистике записи легко преобладает обрезка, учитываемая как запись, особенно для умеренно заполненных файловых систем .
Вы используете NTFS -3g, пользовательское -пространство драйвер файловой системы NTFS.
Между ядром и любыми такими пользовательскими -драйверами файловой системы пространства существует интерфейсный уровень, называемый FUSE (или Filesystem в USErspace ).
Обратите внимание, что тип файловой системы указан как fuseblk
, а не как ntfs
или ntfs-3g
. Когда вы видите type fuseblk (some options)
, то параметры в скобках — это параметры FUSE , а не фактические параметры файловой системы. См. man 8 fuse
, если вы хотите узнать больше деталей.
В частности, user_id=0
означает, что «эта файловая система FUSE была смонтирована пользователем root» и ничего больше. Фактические параметры монтирования передаются процессу драйвера файловой системы, который может делать с ними все, что захочет. (FUSE разрешает доступ к ней только тому пользователю, который смонтировал файловую систему, если не указан параметр FUSE allow_other
.)
К сожалению, уровень интерфейса FUSE не позволяет отображать фактические параметры монтирования файловой системы на основе FUSE -в выводе команды mount
так же, как они показываются файловыми системами на основе классического ядра -.
Вместо этого, если вы запустите pgrep -a ntfs-3g
, вы увидите ntfs-3g
процессы драйвера файловой системы и параметры их командной строки -, которые будут включать указанные вами параметры монтирования.
Например, в моей системе у меня есть эти строки в/etc/fstab
:
UUID="A268B5B668B599AD" /win/c ntfs-3g defaults,windows_names,inherit,nofail 0 0
UUID="56A31D4569A3B7B7" /win/d ntfs-3g defaults,windows_names,inherit,nofail 0 0
И так, я увижу эти процессы:
$ pgrep -a ntfs-3g
775 /sbin/mount.ntfs-3g /dev/nvme0n1p3 /win/c -o rw,windows_names,inherit
1008 /sbin/mount.ntfs-3g /dev/sdb2 /win/d -o rw,windows_names,inherit