Настройка Ubuntu для работы с SSD

Автор: Дмитрий Канн Чтение на 4 мин Этот пост на английском 0233

В прошлый раз я рассказывал об установке твердотельного накопителя (SSD) в iMac. Такие накопители характеризуются очень высокой скоростью чтения (~500 МБ/с при условии подключения через 6-гигабитный SATA III) и бесшумностью.

Есть у них и минусы — высокая цена (тут навряд ли можно чем-то помочь) и ограниченный ресурс работы (точнее, количество циклов перезаписи, поскольку в режиме чтения они могут работать сколь угодно долго). И хотя у современных SSD количество циклов перезаписи измеряется миллионами, всё же имеет смысл адаптировать систему к работе с этим типом накопителя, продлив его жизнь и ускорив работу системы в целом.

Image

Довольно много полезных советов дано на сайте Debian, я расскажу о том, что я поменял в своей системе (Ubuntu 14.10 Utopic Unicorn).

1. Используйте ext4

Файловая система ext4 является наиболее стабильной и распространённой в мире Linux. За отсутствием веских причин, используйте её в качестве основной.

2. Объём RAM с хорошим запасом

Достаточное количество оперативной памяти (RAM) является абсолютно необходимым условием, поскольку позволяет:

  • Избежать своппинга
  • Использовать часть в качестве RAM-диска
  • Создать файловый кэш значительного объёма

Я рекомендую установить минимум 8 ГБ физической памяти, а лучше и все 16.

3. Объём SSD с хорошим запасом

Если диск забит «под завязку», системе становится очень трудно, а порой и невозможно, оптимизировать выделение свободных блоков. Это может значительно уменьшить срок службы накопителя из-за эффекта «умножения записи» (write amplification).

4. Специальные опции монтирования SSD

Рекомендую следующие опции монтирования разделов, расположенных на SSD:

  • noatime — запрещает обновление метаданных файла при чтении из него (рекомендуется и для обычных жёстких дисков).
  • nodiratime — аналогично для директорий.
  • commit=60 — устанавливает задержку записи изменений на диск в 60 секунд. Все изменения, накопленные в течение этого времени, будут записаны в один присест. Правда, если система по какой-либо причине зависнет, часть данных может быть потеряна — но со мной такого практически не случалось.

Таким образом, запись для корневого раздела в /etc/fstab будет выглядеть примерно так:

UUID=12345678-90ab-cdef-0123-4567890abcde  /  ext4  errors=remount-ro,noatime,nodiratime,commit=60  0  1

Изменения вступят в силу после перезагрузки.

5. Еженедельный TRIM

Команда TRIM позволяет поддерживать SSD-накопитель в форме, вовремя помечая неиспользуемые блоки. Ubuntu поставляется уже с прописанной в планировщике еженедельной командой TRIM (/etc/cron.weekly/fstrim). Если у вас другой дистрибутив, проверьте, есть ли у вас что-то подобное.

6. RAM-диск для временных файлов

Каталог /tmp очень часто используется программами для хранения временных файлов; после перезагрузки он всегда автоматически очищается. Это делает его идеальным кандидатом для вынесения в оперативную память. Имейте в виду, однако, что иногда программы пытаются поместить туда файлы очень большого объёма (например, при распаковке архивов .tar.gz) — если места на RAM-диске не хватит, программа может повести себя непредсказуемо.

Чтобы создать RAM-диск, достаточно добавить в /etc/fstab строчку:

tmpfs  /tmp  tmpfs defaults,noatime,nodiratime,mode=1777,size=50%  0  0

Здесь size=50% устанавливает максимальный объём диска в половину всей физической памяти (это также и значение по умолчанию). Изменения вступят в силу после перезагрузки.

7. RAM-диск для лог-файлов

Файлы протоколов программ («лог-файлы») могут обновляться очень часто, приводя к повышенному износу диска. Если вас не беспокоит, что после перезагрузки они бесследно пропадают, их лучше также вынести на RAM-диск. Для этого надо добавить в /etc/fstab строчку:

tmpfs  /var/log  tmpfs  defaults,noatime,nodiratime,size=10000000  0  0

Здесь максимальный размер раздела установлен в 10 МБ, чего обычно хватает.

Кроме того, следующий код, добавленный в /etc/rc.local, создаёт начальную структуру каталогов при каждой загрузке:

for d in fsck apt installer upstart dist-upgrade samba unattended-upgrades cups mpd hp lightdm; do
  [ -d /var/log/$d ] || mkdir /var/log/$d
done

8. Ограничение своппинга

Максимально ограничить использование системой swap-раздела можно, добавив строчку в /etc/sysctl.conf:

vm.swappiness=1

9. Кэш браузера на RAM-диске

Пока вы бродите по Интернету, ваш браузер создаёт очень много маленьких, но очень вредных кэш-файлов. Если вынести его в /tmp, на RAM-диск (созданный нами на шаге 6), после перезагрузки ваш браузер будет всегда начинать с чистого листа — но никаких неудобств это не создаёт.

На примере Google Chrome:

# Создаём каталог кэша в /tmp
mkdir -p /tmp/$USER/google-chrome-cache

# Удаляем с концами оригинальный каталог
rm -rf ~/.cache/google-chrome

# Ставим вместо каталога символьную ссылку на временный каталог
ln -s /tmp/$USER/google-chrome-cache ~/.cache/google-chrome

Чтобы временный каталог автоматически создавался при каждой загрузке, добавьте следующее к /etc/rc.local (заменив alice bob claudia на разделённый пробелами список пользователей):

for u in alice bob claudia; do
  DIR=/tmp/$u/google-chrome-cache
  sudo -u $u -- sh -c "mkdir -p $DIR && chmod -R 700 /tmp/$u"
done

Напоследок

Время от времени стоит также проверять душевное здоровье вашего SSD командой:

sudo smartctl -a /dev/sda

Для этого должен быть установлен пакет smartmontools.

См. также

Если вам понравился этот пост, не забудьте подписаться на обновления блога.

Варианты подписки

Комментарии

Что ещё почитать

Post image
Размножение объектов на фото в Gimp
Post image
Sound Switcher Indicator ‣ 2.3.4
Post image
Ymuse ‣ Go и приложение-клиент для Music Player Daemon
Post image
Sound Switcher Indicator ‣ 2.3.0
Post image
Как загрузить онлайн-видео из YouTube/Vimeo в Linux
Post image
Безбумажность, или Вам не нужно распечатывать этот PDF
Поделиться