TRIM — Разгоняем SSD в Ubuntu

Всем хороши твердотельные накопители Solid State Disk (SSD), но есть у них и несколько малоприятных особенностей. Некоторые из них можно легко исправить своими силами.

Например, у SSD, по мере использования, заметно снижается скорость работы. Чтобы это предотвратить, нужно периодически выполнять операцию TRIM. Во время проведения этой процедуры, операционная система информирует диск о том, какие блоки данных более не используются и которые неплохо бы очистить, чтобы не тратить на очистку время в нужный момент, когда вдруг потребуется записать в этот блок данные.

Проблема в том, что не все ОС понимают что такое TRIM и для чего нужна эта процедура. Ubuntu, например, не понимает. Но это легко поправить. Для этого потребуется выполнение следующих условий:

  • Ядро Linux не старее версии 2.6.33
  • Сам диск должен поддерживать TRIM
  • Файловая система должна быть либо Ext4, либо Btrfs

Если о том, как обновить ядро пользователь примерное представление имеет, то о проверке поддержки диском операции TRIM следует сказать отдельно. Проверить такую поддержку можно следующим образом:

Разумеется, вместо /dev/sda нужно подставить путь к вашему диску.

Активация поддержки TRIM

Создаем файл /etc/cron.daily/trim и добавляем в него следующие строки:

Не забываем сделать этот файл исполняемым:

Все, теперь вас ждут невиданные доселе скорости работы с SSD.

Как не надо делать

Широкую известность получил другой способ выполнения TRIM в Ubuntu. К сожалению, неверный. Заключается он в добавлении параметра discard в /etc/fstab. Так делать не надо.

Евгений Софронов
2013-01-18 11:34:00
по поводу discard. Объясните почему так делать не стоит? О том что так делать не стоит я дошел опытным путем, после выставления этого параметра система переставала грузиться, не могла примонтировать раздел.
Артем Хорошев
2013-01-18 11:48:00
Присоединяюсь к вопросу о том, почему так делать не стоит? А по поводу того что система не грузится - так это Вы что-то неправильно сделали, ибо эта опция работает нормально (проверено на трех дисках на разных системах).
Vitaly Akulov
2013-01-18 14:59:00
Я тоже что то не понял. Откуда такая информация?
Sk8er
2013-01-18 16:40:00
Пожалуйста: https://patrick-nagel.net/blog/archives/337
Артем Хорошев
2013-01-18 17:12:00
Здесь и в других местах все описание сводится к тому что "на некоторых дисках -discard не обеспечивает должной производительности". Но нигде не указано, что "так делать не надо".
Артем Хорошев
2013-01-18 17:28:00
Что можно сделать неправильно? ...Ну например поставить пробел после запятой(что делается "на автомате"). Я конечно не специалист, но на содержимое fstab и вывод hdparm посмотрел бы.
Евгений Софронов
2013-01-18 17:50:00
root@cea:~# cd / root@cea:/# dd if=/dev/urandom of=tempfile count=10 bs=512k oflag=direct 10+0 записей считано 10+0 записей написано скопировано 5242880 байт (5,2 MB), 0,319883 c, 16,4 MB/c root@cea:/# hdparm --fibmap tempfile 0,18: device not found in /dev root@cea:/# система Linux cea 3.7.1-030701-generic #201212171620 SMP Mon Dec 17 21:21:30 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux fstab http://yadi.sk/d/htt0-32m1wzuw собственно трим не включен т.к. система с ним не грузится
Димитрий
2013-01-26 13:29:00
почему я не могу создать файл /etc/cron.daily/trim
Роман
2013-03-18 12:02:00
Для btrfs нет опции discard, а есть ssd
Вадим Капась
2013-05-19 02:27:00
И там же автор пишет: «yes, better firmware is very well possible – actually I seriously hope that things have changed since I wrote that article nearly 1.5 years ago. I should try to switch on the ‘discard’ option again with my SSD some time and re-run the test with a current kernel – maybe there are also improvements on the kernel side?»
vit346
2013-06-04 23:45:00
Гугл в помощь: https://wiki.archlinux.org/index.php/SSD_Benchmarking Раздел "Using dd"
Игорь
2013-07-15 16:31:00
Здравствуйте, возникает такой вопрос: Нормально ли то, что в SSD объемом 128 гигов тримит 120 гигов? Вот вывод лога: *** Sun, 14 Jul 2013 01:33:37 +0700 *** /: 120080531456 bytes were trimmed *** Sun, 14 Jul 2013 01:51:42 +0700 *** /: 743043072 bytes were trimmed *** Mon, 15 Jul 2013 17:20:03 +0700 *** /: 119736229888 bytes were trimmed
crash843
2013-12-03 20:04:00
Судя по всему это копипаста. В коде "& gt;& gt;" нужно заменить на >>
xandros
2013-12-08 20:33:00
>>Широкую известность получил другой способ выполнения TRIM в Ubuntu. К сожалению, неверный. Заключается он в добавлении параметра discard в /etc/fstab. Так делать не надо. Ну так и не делайте: http://ubuntovod.ru/instructions/ssd-ubuntu-11-10.html