- Оптимизация Ubuntu (и прочих Linux-ов) под SSD
- 5 важных оптимизаций для использования SSD в Linux.
- Сегодня я поделюсь с вами этими вещами:
- 1. Купить более чем достаточно оперативной памяти
- 2. Используйте макет раздела по умолчанию
- 3. Избегайте использования свопа
- 4. Отключить регистрацию времени доступа
- 5. Включить TRIM
- Последний совет: не покупайте диски TLC
Оптимизация Ubuntu (и прочих Linux-ов) под SSD
Доброго времени суток всем читающим. В данной мини-статье мне хотелось бы собрать и рассмотреть основные моменты оптимизации работы (и, конечно, продления жизненного цикла ) твердотельных накопителей. Практически всю информацию можно легко найти в сети, но тут я попытаюсь упомянуть пару подводных камней.
Первое, с чего стоит начать — это выбор файловой системы. Если система на десктопе — то особо вопросов не возникает — брать журналируемую ext4 — у которой масса преимуществ перед остальными ФС. Да, будет больше циклов записи на носитель, но будет гарантия того, что в случае сбоя питания вы не потеряете данные. На ноутбуках, нетбуках — имеются батареи, и вероятность отключения из-за потери питания — практически нулевая (но, конечно, всякое бывает), в связи с чем журналирование, обычно рекомендуют отключать. Если это очень хочется сделать, то после установки системы грузимся с liveCD, и пишем в терминале
tune2fs -O ^has_journal /dev/sda1
e2fsck -f /dev/sda1
Другие способы не рекомендуются — потеряете поддержку TRIM. Также не стоит отключать журнал, добавляя параметр «writeback» в конфигурацию fstab — система не запустится из-за ошибки монтирования (если до этого был включен трим).
Следующее, что нужно учесть — файл подкачки. Под моим никсом (сейчас — убунту 11.04) обычно пишется код, смотрятся фильмы в HD и активно серфится интернет. За это время файл подкачки не понадобился ни разу, максимальное потребление ОЗУ было 1Гб, из 2х доступных в нетбуке.
Если Ваш сценарий использования системы подобен моему, или у Вас не десктоп — файл подкачки не нужен. Иначе стоит его перенести на HDD. Если журналирование еще можно оставить, ввиду его относительной безобидности, то своп-раздел — однозначно зло, сжирающее как ограниченные циклы перезаписи, так и недешевые гигабайты, количеством которых современные SSD пока не могут похвастаться.
Ну вот, система поставлена — можно заниматься оптимизацией! Самый первый шаг — включение TRIM — главная технология, которая должна продлить жизнь и распределить нагрузку SSD.
Делается очень просто — открываем fstab (например так)
ищем строчки
«UUID=[NUMS-AND-LETTERS] / ext4 errors=remount-ro 0 1»
и заменяем на
«UUID=[NUMS-AND-LETTERS] / ext4 disсard,errors=remount-ro 0 1»
Обычно по умолчанию трим отключен, но выкладываю способ проверить — заходим под рут и выполняем команды
1. dd if=/dev/urandom of=tempfile count=10 bs=512k oflag=direct //запись 5Мб рандомных данных
2. hdparm —fibmap tempfile //Ищем любой стартовый LBA адрес у файла
3. hdparm —read-sector [ADDRESS] /dev/sdX //Читаем данные со стартового LBA адреса файла, замените [ADDRESS] на свой Starting LBA address из вывода предыдущей команды
4. rm tempfile //Теперь удалим временный файл и синхронизируем ФС:
5. sync
Повторяем пункт 3 — и смотрим на вывод консоли. Если выведутся нули — то трим работает. Если вы исправили fstab, перезагрузились, но трим не активировался — ищите ошибки в неверном отключении журналирования.
Далее стоит вспомнить о том, что наш никс очень любит вести разнообразные логи. И либо перенести их на HDD, либо держать в ОЗУ до перезагрузки системы. Я считаю, что если у Вас дома не сервер — то оптимален второй вариант, и реализуется он добавлением в fstab следующих строчек
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0
tmpfs /var/spool/postfix tmpfs defaults 0 0
По умолчанию, после каждого открытия файла — система оставляет отметку времени последнего открытия — лишние операции записи. Отучить просто — добавить в fstab перед параметрами
disсard,errors=remount-ro 0
еще парочку опций —
relatime,nodiratime Первая разрешает записывать только время изменения (порой необходимо для стабильной работы некоторых программ), вторая — отменяет запись времени доступа к директориям. В принципе, вместо relatime можно поставить и noatime, который вообще ничего не будет обновлять.
После этого стоит настроить отложенную запись — ядро будет копить данные, ожидающие записи на диск, и записывать их либо при острой необходимости, либо по истечении таймаута. Я ставлю таймаут на 60 секунд, кто-то — на 150.
Для этого открываем /etc/sysctl.conf и добавляем параметры
vm.laptop_mode = 5 // Включение режима
vm.dirty_writeback_centisecs = 6000 время в сСк. Т.е. 100ед = 1секунда
И, напоследок, отключаем I/O планировщик, который был когда-то нужен для лучшего позиционирования головок HDD. Для этого заходит в конфиг граба /etc/default/grub
и в строчку
GRUB_CMDLINE_LINUX_DEFAULT=«quiet splash» вставляем параметр elevator=noop
По пути можно убрать ненужный и малоинформатиынй сплэш-скрин, сократив время старта системы еще на секунду, просто убрав quiet splash.
Вот, в общем основные моменты. Дальше стоит проявить фантазию — например, перенести куда-нибудь, или вовсе отключить кеш браузеров и тд. В награду за проделанные манипуляции Ваш SSD прослужит вам верой и правдой, и с каждым стартом будет радовать хорошей скоростью.
Update
Многи замечают о необходимости выравнивания разделов. Товарищу isden большое спасибо за ссылку на тему. wiki.archlinux.org/index.php/SSD#Partition_Alignment
Если не хотите рисковать — то журнал лучше не отключать. Тогда гарантированно будет работать трим, и некоторая защита данных от крупных системных сбоев.
5 важных оптимизаций для использования SSD в Linux.
Я знаю, что это обсуждалось много раз, но в интернете есть много разных мнений, какие оптимизации хороши для SSD (и нужно ли их использовать). Кроме того, технология продвинулась, и некоторые из советов, возможно, просто устарели. Я купил свой первый SSD лет 5 лет для своего MacBook Core2Duo 2.0 Ghz. Нет необходимости говорить, что мой MacBook работал быстрее, чем многие MacBook Pro того времени. Взгляд на лица людей, когда они увидели, что мой MacBook загружается быстрее, чем их MacBook Pro, был незабываемым. К тому времени я также экспериментировал с запуском 2×8 Гб памяти CompactFlash с конвертерами SATA в режиме RAID-0 на моём полностью тихом (но старом и не синхронизированном) рабочем столе Linux. Когда люди бывали у меня дома, они не могли поверить, что мой ноутбук действительно включен: он был совершенно безмолвен.
Даже сегодня мне всё ещё нравится создавать компьютеры с низким энергопотреблением, тихие и сверхбыстрые (Linux) с SSD в качестве основного диска. В настоящее время используется новый стандарт mSATA (см. рисунок). За последние годы я узнал кое-что о настройке Linux на SSD-накопителе.
Сегодня я поделюсь с вами этими вещами:
1. Купить более чем достаточно оперативной памяти
Да, у вас должно быть как минимум 16 ГБ ОЗУ. Я знаю, вы скажете, что вы этим не пользуетесь, но в этом-то и дело. Если вы будете использовать меньше памяти, этого будет недостаточно. И почему бы нет? В наши дни ОЗУ стала относительно дешёвой, вы же не хотите, чтобы ваша система начинала обмениваться чаще данными, поскольку это изнашивает ваш дорогой SSD.
2. Используйте макет раздела по умолчанию
Вопреки распространенному мнению, подойдёт стандартное (управляемое) разбиение. Если вы создаёте разделы вручную, имейте в виду, что вам нужен раздел подкачки, размер которого больше размера вашей оперативной памяти.
3. Избегайте использования свопа
У вас достаточно оперативной памяти, поэтому вы можете отключить файл подкачки или даже создать систему без файла подкачки. Я работал без файла подкачки в течение года или около того и никогда не испытывал значительных проблем (другие пользователи говорят то же самое). Наиболее неприятным побочным эффектом является то, что функция гибернации недоступна, поскольку она использует раздел подкачки. Вот почему я рекомендую не полностью отключать swap, а уменьшить загрузку Linux. Таким образом, Linux будет использовать всю доступную оперативную память перед тем, как начать запись на ваш драгоценный SSD, но при этом позволит вам перейти в спящий режим. Тем не менее, будьте внимательны, когда речь заходит об использовании спящего режима, потому что он использует много циклов записи. Запустите эту однострочную строку, чтобы добавить параметр постоянной замены:
1 echo -e “vm.swappiness=0” | sudo tee -a /etc/sysctl.conf
Это будет работать эффективно только после перезагрузки.
4. Отключить регистрацию времени доступа
Удалите запись времени доступа в файловой системе. Без флага «noatime» в вашей файловой системе каждое чтение приведёт к записи, потому что файловая система обновит время доступа. Это плохо для жизни вашего SSD, так как он поддерживает ограниченное количество записей, и это вызывает значительно больше записей. Отредактируйте «fstab», чтобы добавить флаг «noatime»:
Теперь измените «errors = remount-ro» на «noatime, errors = remount-ro». Сохраните файл и перезагрузитесь.
5. Включить TRIM
TRIM остановит работу вашего SSD после некоторого использования. Если вы не включите TRIM, запись может замедлиться из-за удаления удалённых блоков. Запустив эту однострочную строку, вы можете добавить TRIM в качестве ежедневного задания cron:
1 echo -e “# \ x21 / bin / sh \\ nfstrim -v /” | sudo tee /etc/cron.daily/trim
Вы должны сделать задачу cron исполняемой, используя:
1 sudo chmod +x /etc/cron.daily/trim
Он будет запускаться каждый день, чтобы не замедлять ваши записи, и вы вряд ли это даже заметите.
Ещё совет: всегда следите за ожидаемым сроком службы SSD.
Ваш диск не будет вечно работать. У него есть ожидаемое время жизни, и вы, вероятно, должны контролировать его, используя:
1 sudo smartctl -data -A / dev / sda
Это выведет что-то вроде этого:
На ID # 233 вы видите MWI. Это значение начинается с 100, и когда оно достигает значений ниже 10, вам следует начать беспокоиться. Обратите внимание, что разные производители могут иметь разные названия и номера для этого индикатора.
Последний совет: не покупайте диски TLC
Приводы Triple Level Cell (TLC) выходят на рынок. Эти диски имеют значительно меньший ожидаемый срок службы. Срок службы привода измеряется в циклах программы/стирания (PE) или в виде записанных петабайтных байтов (PBW). Внимательно проверяйте спецификацию, чтобы не покупать дешёвый диск, думая, что вы сделали хорошую покупку, в то время как на самом деле Вы покупаете модель с меньшим ожидаемым сроком службы.