В прошлый раз я рассказывал об установке твердотельного накопителя (SSD) в iMac. Такие накопители характеризуются очень высокой скоростью чтения (~500 МБ/с при условии подключения через 6-гигабитный SATA III) и бесшумностью.
Есть у них и минусы — высокая цена (тут навряд ли можно чем-то помочь) и ограниченный ресурс работы (точнее, количество циклов перезаписи, поскольку в режиме чтения они могут работать сколь угодно долго). И хотя у современных SSD количество циклов перезаписи измеряется миллионами, всё же имеет смысл адаптировать систему к работе с этим типом накопителя, продлив его жизнь и ускорив работу системы в целом.
Довольно много полезных советов дано на сайте 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
.
Комментарии