Автоматическая TRIM против ручной TRIM

13

В настоящее время я пытаюсь выяснить, как урезать мой новый TP, и мне было интересно узнать разницу между ручной и онлайн-обрезкой.

Вот моя установка:

ThinkPad T430s с твердотельным накопителем Samsung 830, 128 ГБ и Xubuntu 12.10, вот несколько выходов, чтобы проверить, будет ли работать триммер на моей системе (их можно найти здесь: http://wiki.ubuntuusers.de/SSD/TRIM )

root@eike-tp:~# sudo hdparm -I /dev/sda | grep -i TRIM
   *    Data Set Management TRIM supported (limit 8 blocks)

Сначала я попробовал онлайн обрезку: как включить TRIM?

мой фстаб со сбросом вставлен:

UUID=d6c49c17-a4f1-466c-9f7e-896c20db3bba /  ext4  discard,noatime,errors=remount-ro  0  1
# swap was on /dev/sda5 during installation
UUID=a0322f5f-c6c1-4896-863f-668f0638d8cf none  swap  sw  0   0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Я попытался проверить, работает ли он (но я не получаю никаких нулей, когда я пробую его с / dev / sda), но обнаружил, что этот метод возможен только с SSD типа 2, и у меня, кажется, есть тип 3. Поэтому я не знаю, работает ли это или нет.

Ubuntuwiki (первая ссылка) рекомендует ручную обрезку, поэтому я вместо ежедневного сброса настроил cronjob:

#!/bin/sh
LOG=/var/log/batched_discard.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG

статья вики предлагает еженедельно или ежедневно. Теперь к моим вопросам:

Как часто выполняется автоматическая обрезка? Как часто это рекомендуется? Онлайн или ручная обрезка?

Спасибо за помощь

Эйке Кочу
источник

Ответы:

4

Разница между автоматической и ручной обрезкой заключается в том, что автоматическая обрезка (с помощью discardопции монтирования) обрезает освобожденные блоки при синхронизации после удаления любого файла, тогда как ручная обрезка (при использовании fstrim) обрезает все свободное пространство сразу.

тестирование

Один из способов проверить, работает ли автоматическая обрезка, - создать и удалить большой файл:

user@host:/somewhere$ dd if=/dev/urandom bs=1M count=100 of=bigfile
user@host:/somewhere$ sync
user@host:/somewhere$ rm bigfile
user@host:/somewhere$ sync

Если автоматический сброс работает, ручная обрезка снова не обрезает многие блоки, так как они должны были уже обрезаться. Запустите sudo discard -vна своей файловой системе и посмотрите, сколько блоков обрезано.

Рекомендация

Что касается того, что рекомендуется: По моему опыту, автоматическая обрезка убивает производительность. Тем не менее, это, вероятно, зависит от оборудования; это может быть хорошо на вашем диске.

Если вы используете ручную обрезку, а также о частоте, подумайте о скорости, с которой вы записываете данные в своей типичной рабочей нагрузке, по сравнению с объемом свободного места на вашем SSD. Вы хотите обрезать достаточно часто, прежде чем ваш диск заполнится удаленными данными. Если в вашем SSD в основном свободное место или рабочая нагрузка на диск невелика, иногда может быть достаточно обрезки (еженедельно или даже дольше). Если ваш твердотельный накопитель в основном заполнен или вы, например, часто редактируете видеофайлы, вам придется чаще обрезать его.

Механическая улитка
источник
2

Я не инженер по хранению, и у меня есть собственные проблемы , но я могу сделать полезное предложение по планированию. Я уверен, что TRIM не вызывает беспокойства на SSD. Это просто ведение домашнего хозяйства, что ваш диск в конечном итоге должен будет пройти, прежде чем он сможет начать утилизацию блоков. Лучший график для пакетного TRIMming будет зависеть от использования; я думаю, это функция записи частоты и свободного пространства. Имея это в виду, я бы отключил работу cron и fstrim -vвручную на несколько дней.

Я думаю, уловка заключается в том, чтобы создать график, в котором пакетная программа TRIM подготавливает твердотельный накопитель к записи до того, как использованные блоки должны быть переработаны для выполнения обычной операции записи, что снижает производительность. Подождите 24 часа и fstrim. Если он утверждает, что обрезал гораздо меньше блоков, чем было в свободном пространстве, вы, вероятно, будете лучше обрабатывать пакетные TRIMming реже, чем это.

дамба
источник
2

Я подготовил fstrim демон https://github.com/dobek/fstrimDemon

Кажется более надежным выполнение fstrim на основе времени готовности, чем таблица cron. Веселиться.

Dobek
источник
2

Я подрезаю свой SSD при каждой загрузке. Я сделал sh файл, который вызывается через 20 секунд после запуска. Я решил отобразить вывод из fstrim в системном уведомлении вместо файла журнала.

сначала создайте trim.shфайл в вашем ~/binкаталоге

#! /bin/sh
notify-send "TRIM" "$(sudo fstrim -v /)"

Теперь нам нужно дать пользователю привилегии для запуска fstrim, поэтому нам не нужно вводить пароль. Откройте файл sudoers с помощью visudo и добавьте следующую строку:

yourusername  ALL=(ALL) NOPASSWD: /sbin/fstrim

Если вы включите свою home/yourusername/binпапку в свою, $PATHвы также можете выполнить ручную обрезку в терминале с помощью команды «trim» без необходимости ввода пароля.

Теперь вы можете добавить свой скрипт в запускаемые приложения и указать задержку. Вам необходимо выйти / войти снова, чтобы ваша новая запись sudoers была загружена.

Каспер Тайманс
источник