Использование SSD диска Linux Ubuntu.

Суть проблемы.

    Купил я себе ssd диск в мой компьютер. Отличный диск, но есть в нем несколько недостатков, которые по счастью легко исправимы при наличии желания.
Например, у SSD диска со временем снижается скорость работы. Для исправления этой ситуации, время от времени нужно проводить операцию под названием TRIM. Смысл этой операции в том, чтобы известить систему о том, что какие-то блоки не используются, и их надо очистить. Проблема в том, что не все ОС понимают, что такое TRIM и для чего нужна эта процедура. Ubuntu, например не понимает. По счастью, это всё легко исправимо.
Известны два способа включения TRIM на  SSD дисках. Первый способ, это автоматический, с использованием опции discard при монтировании SSD дисков в файле /etc/fstab. Этот способ имеет один недостаток, он снижает производительность SSD диска. Иногда, существенно.
Второй способ- это использование утилиты fstrim и запуск ее по расписанию. Одного раза в день, более чем достаточно, для выполнения операции TRIM без снижения производительности накопителя.
Мы реализуем выполнение TRIM с использованием утилиты fstrim. Что помоему мнению более правильно. Итак, нам понадобится утилита fstrim, а также выполнения некоторых условий.
  • Ядро не старее версии 2.6.33
  • Сам диск должен поддерживать TRIM
  • Файловая система должна быть ext4 или brtfs

Проверить поддержку TRIM можно командой:
sudo hdparm -I /dev/sdx | grep "TRIM supported"
  где sdx -Ваш SSD диск.

Включаем поддержку TRIM

Сначала  создаем такой файл под названием trim.sh:

#!/bin/bash
LOG=/var/log/trim.log
TRIM=/var/cache/trim/trim
DATE=`date +%D`
OLDDATA=`cat /var/cache/trim/trim`
if [ $DATE = $OLDDATA ]
    then
    echo " $(date -R) Disk is already trimmed today" >> $LOG
    exit
fi
echo "$(date +%D)"> $TRIM
echo " ## $(date -R) ##">> $LOG
fstrim -v / >> $LOG

У меня этот файлик лежит в /root/bin откуда делаем симлинк в папку  /etc/cron.daily:
# ln -s /root/bin/trim.sh /etc/cron.daily/trim
Делаем этот файл исполняемым:
# chmod 755 /root/bin/trim.sh
Создаем нужную папку для хранения флага со временем последнего старта, чтобы исключить повторный запуск этого скрипта, зачем мучить ssd винт. Делать TRIM раз в сутки более чем достаточно.
Так как диск был установлен на мой настольный компьютер не забудем обеспечить старт скрипта при каждой перезагрузке системы.
Добавим строчку в конец /etc/crontab:
@reboot root /root/bin/trim.sh
Рестартуем crond. 
#service cron restart

Комментариев нет:

Отправить комментарий