LINUX.ORG.RU

Выхлоп fstrim

 ,


0

1
# fstrim -av
/mnt/WIN7: 25.5 GiB (27413483520 bytes) trimmed on /dev/sdb2
/: 974.6 MiB (1021894656 bytes) trimmed on /dev/sdb1

Через несколько секунд делаю снова:

# fstrim -av
/mnt/WIN7: 25.5 GiB (27413483520 bytes) trimmed on /dev/sdb2
/: 0 B (0 bytes) trimmed on /dev/sdb1

ext4 раздел больше не фстримается, а ntfs снова 25 гиг рапортует.

Это что, fstrim в ntfs не может?

★★★

В вызов ioctl FITRIM параметром передаётся структура, где указано откуда и докуда триммить. Предполагается, что реализация в драйвере файловой системы обновит поле len, оставив там размер оттриммленного. Драйвер ext4 обновляет это поле, а драйвер ntfs — нет.

Утилита fstrim просто показывает значение на выходе. У неё нет специальной поддержки разных файловых систем. Вся суть ioctl FITRIM состоит в том, чтобы интерфейс для всех ФС был одинаковый. Поэтому старые версии fstrim будут поддерживать ФС, которых ещё не было на момент написания fstrim. Главное условие — они должны реализовывать ioctl FITRIM.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Драйвер ext4 обновляет это поле, а драйвер ntfs — нет

Т.е по факту trim был произведен и можно не обращать внимание на выхлоп?

Chord ★★★
() автор топика
Последнее исправление: Chord (всего исправлений: 1)
Ответ на: комментарий от Chord

По факту был произведён системный вызов ioctl, и он не вернул ошибку. Что там на самом деле сделал драйвер, ещё нужно смотреть.

Косвенный признак работоспособности fstrim — время работы. Если он всегда завершается очень быстро, это подозрительно. Если тратит заметное время, скорее всего, TRIM осуществляется.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Первый вызов заняло порядка 7-8 секунд, может больше. Сейчас быстро тримает, менее секунды. Да и с тех пор я в винду не перегружался.

Chord ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.