
Есть у меня небольшой одноплатный компьютер, который какое-то время валялся без дела. Но вот недавно я настроил на его сонове систему видеонаблюдения с использованием веб камеры. В качестве накпоителя в нем используется compact flash карта. В данной посте я дам несколько простых советов которые продлят время жизни SSD или любого другого флеш накопителя используемого в качестве системного диска.
1. Начнем с самого простого, но, навернео, самого важного – монтируем корневую файловую систему (и все другие файловые системы этого диска) с опцией noatime. Она отвечает за запись в файловую систему данных о том, когда к файлу обращались в последний раз. Следовательно при любом открытии файла на чтение или выполнение в файловую систему заноситься пометка. Можете себе представить к сколько сотен тысяч раз система дергает тот или иной файл во время работы.
Опцию необходимо добавить в файл /etc/fstab как в моем примере:
/dev/sda1 / ext4 noatime,errors=remount-ro 0 1
2. Переносим /tmp, /var/tmp и /var/log в память. Во время работы Ubuntu 11.04, да и другие версии и дистрибутивы ОС Linux, регулярно создают временные файлы в /tmp, реже в /var/tmp. От обращений к диску при работе с временными файлами можно избавиться если перенести их в память. Так же, если системные логи вам не осоо нужны, можете перенести в память и иректорию /var/log. Стоит учитывать что все логи и временные файлы будут удаляться при каждой перезагрузке. С другой стороны это позволит избавиться от очередной пачки обращений к диску.
В тот же /etc/fstab следует внести следующие строки:
tmpfs /var/log tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
3. Просим систему не использовать раздел подкачки. При работе с системой, если ей не хватает памяти, она начинает делать дампы памяти в раздел подкачки. Это тоже приводит к большому количеству записей на SSD диск. Избежать этого можно указав системе что раздел подкачки следует использовать только в самом крайнем случае. Для этого в файле /etc/sysctl.conf следующий необходимо добавить параметр:
vm.swappiness = 1
Изменение вступит в силу после следующей перезагрузке или после выполнения команды:
# sysctl -p
4. Последняя рекомендация затронет планировщик который используется ядром для работы с диском. Оптимизированным под ssd является noop планировщик. Просмотреть какой именно в данный момент используется системой можно выполнив следующюю команду:
boffin@ubuntu:~$ cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
По умолчанию в Ubuntu 11.04 установлен универсальный планировщик cfq.
Включить noop можно при работающей системе с помощью команды:
echo noop > /sys/block/sda/queue/scheduler
Для того что б изменения сохранились после перезагрузки, необходимо подправить конфигурационный файл загрузчика ядра. Для этого в файл /etc/default/grub в опции GRUB_CMDLINE_LINUX_DEFAULT необходимо добавить параметр elevator=noop. В моем случае вся строчка выглядит вот так:
GRUB_CMDLINE_LINUX_DEFAULT="quiet elevator=noop"
После этого следует уведомить загрузчик об изменениях, выполнив команду:
# update-grub
Все! Для вступления в силу изменений с разделами жесткого диска следует перезагрузить систему. Теперь ваш SSD диск прослужит значительно дольше. Более того, вы наверняка ощутите прирость скорости системы, так как она станет меньше писать на диск.
Если кто-то знает еще способы «разгрузить» SSD, пишите в комментариях, обсудим.
