Суть проблемы.
Купил я себе 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
# 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
Комментариев нет:
Отправить комментарий