Настройка Ubuntu для работы с SSD 01.12.2014. Ssd ubuntu оптимизация
Оптимизация Linux под SSD
Твердотельные накопители становятся все доступнее и занимают все большую часть рынка. Вот и я решил заменить hdd c windows seven своего нетбука Lenovo IdeaPad S10-2 на SSD c Ubuntu Netbook.
В этой записи я собрал нагугленные заметки по оптимизации работы Linux на SSD для рабочей станции.
Разметка диска и файловая система
В первую очередь, нужно забыть про раздел подкачки, все прекрасно работает и без него. Для SSD лучше использовать не журналируемую файловую систему. Журнал нужен для того, чтобы, после пропадании электропитания, восстановить незавершенные транзакции — не потерять данные и оставить ФС целостной. Так как большинство SSD используются в ноутбуках/нетбуках, где присутствует батарея, пропадание электропитания практически невозможно, журнал не нужен. Я использую 100 Мб под /boot с ext2, 20 Гб как / с ext4 и все остальное под /home, так же с ext4. Файловую систему ext4 я выбрал так как она позволяет отключать журнал после создания файловой системы, делается это так:
root@localhost:~$ tune2fs -o journal_data_writeback /dev/sda1 root@localhost:~$ tune2fs -O ^has_journal /dev/sda1 root@localhost:~$ e2fsck -f /dev/sda10 |
Так же, для увеличения производительности, к опциям монтирования в fstab рекомендуется добавить:
relatime,nodiratime,discard,commit=60 |
Здесь у некоторых может возникнуть подозрение, что использование noatime эффективнее чем relatime. Это не так, relatime обновляет время доступа только при изменении файла или изменении времени доступа. Это нужно для нормальной работы некоторых программ, в том числе почтовых клиентов. Опция discard включает поддержку TRIM. Так же откладываем до раза в минуту запись изменений на накопитель commit=60.
Логи на рабочей станции мало кому нужны после перезагрузки, поэтому целесообразно разместить их, как и временные файлы, в оперативной памяти. Для этого добавим такие строки в fstab:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 |
I/O планировщик
Планировщик cfq, используемый по умолчанию в большинстве дистрибутивов лучше заманить на noop. Для этого к опциям ядра в конфиге загрузчика нужно добавить:
Параметры ядра
Включаем «режим ноутбука» для подсистемы виртуальной памяти, в таком режиме, ядро будет откладывать запись на диск, пока в этом не появится неотложная необходимость. Кроме того повысим таймаут между сбросом буферов до 15 секунд:
vm.laptop_mode = 5 vm.dirty_writeback_centisecs = 15000 |
Firefox & Chrome
Временные файлы мы перенесли в оперативную память, но браузеры хранят свой кеш в домашнем каталоге пользователя, который у нас на SSD. Нужно либо переместить кеш с SSD, либо выключить его. Я выбрал последний вариант.
Для этого в адресной строке Firefox введем about:config и изменим параметр:
browser.cache.disk.enable: false |
В Chrome немного сложнее, запретить кеш раз и навсегда нельзя, вместо этого нужно каждый раз запускать браузер с параметром --disk-cache-size=0:
google-chrome --disk-cache-size=0 |
Или создать alias:
alias google-chrome='google-chrome --disk-cache-size=0' |
Кэш пакетных менеджеров
Так же может быть полезным вынести кэш менеджера пакетов в ОЗУ. Для deb-based дистрибутивов нужно добавить в fstab:
tmpfs /var/cache/apt/archives tmpfs defaults 0 0 |
Для rpm-based дистрибутивов нужно добавить в fstab:
tmpfs /var/cache/yum tmpfs defaults 0 0 |
UPD20130310: Обновлены обции монтирования, добавлен вынос кеша пакетных менеджеров в ОЗУ.
Читайте другие интересные статьи
adminunix.ru
Как оптимизировать ОС для SSD? Ubuntu Linux
Какие шаги следует предпринять до / во время / после установки Ubuntu на твердотельном накопителе для оптимизации производительности и обеспечения максимальной долговечности накопителя?
Я успешно использовал несколько различных методов, чтобы улучшить способ использования Ubuntu устройства хранения данных, будь то твердотельный или традиционный диск.
Для SSD вы пытаетесь свести к минимуму количество времени, в течение которого записывается диск, так как чтение не должно увеличивать износ диска.
1) Управление файлом подкачки
Если вы не спящий с компьютера и у вас достаточно RAM-памяти для запуска всех ваших приложений, теоретически вам не нужен раздел подкачки.
Если у вас есть сочетание SSD и жестких дисков, поместите свой раздел подкачки только на жесткие диски.
2) No Writes for Timestamps (подходит для SSD и жестких дисков)
Установка ваших разделов с параметрами noatime и nodiratime остановит запись timestamp при чтении файлов и папок. Эти записи временных меток обычно не требуются, если вы не используете клиента локального почтового сервера, такого как mutt. Причина, по которой это, как правило, плохая идея, состоит в том, что каждое чтение будет производить запись при обновлении временных меток. Это уменьшает срок службы SSD.
Измените файл конфигурации / etc / fstab (осторожно – сделайте резервную копию, чтобы убедиться, что нарушение вашей конфигурации fstab может помешать работе вашей системы):
cp /etc/fstab ~/fstab-backup gksudo gedit /etc/fstabИзмените параметры монтирования для своих разделов, добавив текст noatime и nodiratime в строки, определяющие ваш root (/) и другие разделы, если они у вас есть (/ home). Примечание: если у вас есть / домашний раздел, начните с этого только изменения этот раздел, если вас беспокоит нарушение чего-либо
# / was on /dev/sda2 during installation UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 / ext4 noatime,nodiratime,errors=remount-ro 0 1 # /home was on /dev/sda3 during installation UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home ext4 noatime,nodiratime,defaults 0 2Вам необходимо будет перезагрузить компьютер до того, как эти изменения вступят в силу
3) Минимизация записей из ОС и приложений
Предполагая, что вы не используете критически важный сервер продукта, большинство людей не смотрят на журналы, если что-то пойдет не так (особенно, поскольку для большинства пользователей Ubuntu редки серьезные ошибки). Поэтому вы можете настроить Ubuntu, чтобы все журналы записывались в оперативную память, а не в SSD.
Примечание. Выполняйте следующие изменения, только если вы установили все программное обеспечение, которое собираетесь использовать (особенно такие, как веб-сервер Apache), иначе могут возникнуть проблемы с отсутствующими каталогами в / var / log
В качестве фона для этого подхода см. Продление срока службы флеш-накопителя на ubuntu-eee.com
Откройте / etc / fstab с помощью редактора (при условии, что вы сохранили файл / etc / fstab)
gksudo gedit /etc/fstabДобавьте следующие строки в конец файла fstab и сохраните:
# Uncomment these after all server based applications installed - eg. apache #tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 #tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0 #tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 #tmpfs /var/log/apt tmpfs defaults,noatime 0 0 # none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0Вам необходимо будет перезагрузить компьютер до того, как эти изменения вступят в силу
Смотрите также:
- Как включить TRIM?
Жизнь SSD
Вообще я бы не стал беспокоиться – беспокойство о жизни SSD раздуто. Вы можете прочитать эту подробную статью о том, почему вы действительно не должны беспокоиться . Короче говоря, схема внутри современных твердотельных накопителей управляет износостойкостью для вас, и они знают, как сделать это намного лучше, чем вы.
В статье приведен расчет жизни SSD, который получает записи с непрерывной скоростью 80 М / с. Жизнь – 51 год . Это основано на технологии 2007 года – жизнь SSD будет дольше. И вы почти наверняка не пишите на свой SSD по 80M / s 24 часа в сутки.
Производительность SSD
Однако ухудшение производительности со временем может быть проблемой, и TRIM – это решение. Есть два варианта
- автоматический / онлайн TRIM, aka discard
- руководство TRIM
Вы должны включить автоматический TRIM самостоятельно . (В основном вы добавляете опцию discard к вашим настройкам монтирования при условии, что используете ext4.) Я нашел сообщение в блоге, сообщающее, что опция discard замедляет вашу систему при удалении файлов .
Иногда вы можете делать это вручную (или в задании cron) с помощью fstrim . Если у вас только один раздел, вам нужно всего лишь:
sudo fstrim /Обратите внимание, что fstrim доступен только в 11.10 и новее. Для старых систем вам понадобится скрипт wiper.sh . Я нашел скрипт в /usr/share/doc/hdparm/contrib/wiper.sh.gz в моей системе.
Если вам интересно, проблема, которую разрешает TRIM, как описано в Википедии , такова:
SSD хранят данные в ячейках флэш-памяти, которые сгруппированы по страницам, причем страницы (как правило, 4 кБ каждая) группируются вместе в блоки (как правило, 128 страниц на блок, всего 512 кБ). Ячейки флэш-памяти NAND могут быть записаны только в том случае, если они пусты. Если они считаются содержащими данные, содержимое сначала необходимо удалить до того, как операция записи может быть выполнена надежно. В SSD-операции запись может выполняться на уровне страницы, но из-за аппаратных ограничений команды стирания всегда влияют на целые блоки. В результате запись данных на SSD-носитель очень быстра, пока могут использоваться пустые страницы, но значительно замедляется, как только ранее написанные страницы должны быть перезаписаны . Поскольку стирание ячеек на странице необходимо, прежде чем ее можно будет записать снова, но можно удалить только целые блоки, перезапись начнет цикл чтения-стирания-изменения-записи: содержимое всего блока должно быть сохранено в кеше, прежде чем он будет эффективно удален на флэш-носитель, тогда перезаписанная страница будет изменена в кеше, поэтому кешированный блок обновится, и только тогда весь блок (с обновленной страницей) будет записан на флэш-носитель . Это явление известно как усиление записи.
Есть несколько моментов:
Выравнивание:
Часто указывается правильное выравнивание раздела. Это должно быть равно размеру блока SSD. Играйте в безопасном режиме и делайте свои разделы согласованными с границами MiB. Обратите внимание, что вы не можете сделать это с помощью инструмента разделения раздела Ubuntu (который использует MB not MiB), но вы можете загружать Live CD, использовать Gparted (который использует MiB), а затем нажмите «Установить», чтобы использовать настроенные вами разделы.
Правильный планировщик:
Важным моментом является планировщик, который должен быть noop . Вы можете установить этот планировщик через kernelparameter elev elevator=noop или через echo noop > /sys/block/sda/queue/scheduler в rc.local.
Mountflags:
Я бы порекомендовал noatime и discard
Tmpfs
Чтобы положить tmp на ramdisk, можно увеличить время жизни ssd. Чтобы использовать это, введите следующую строку в fstab: none /tmp tmpfs defaults 0 0
Как правило, если вы хотите погрузиться глубже в эту тему, я бы рекомендовал эту замечательную вики-статью.
Быстрый курс настройки для вашего SSD на Ubuntu:
файловая система
Arch wiki упоминает несколько предпочтительных опций для файловой системы SSD – один из них нестабилен, другие – ext *. Я предполагаю, что ext4 – один из лучших вариантов. Примечание. В случае ext4 вы можете использовать опцию discard mount.
Fstab
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc nodev,noexec,nosuid 0 0 tmpfs /tmp tmpfs nodev,nosuid,noatime,mode=1777 0 0 /dev/sda1 / ext4 defaults,noatime,discard,errors=remount-ro 0 1 /dev/sda2 /home ext4 defaults,noatime,discard,user_xattr 0 2 /dev/sda3 /windows ntfs defaults,noatime,discard,umask=007,gid=46 0 0Здесь немаловажно:
- Для систем с> = 2 гигабайтами памяти желательно расположение / tmp в ОЗУ.
- Нет раздела swap . В настоящее время это необходимо только для спячки, поскольку современные машины имеют довольно большой объем оперативной памяти.
- noatime и discard . Информация здесь .
планировщик
Подумайте о переходе от планировщика по умолчанию, который в большинстве дистрибутивов Linux – это cfq (полностью честная очередь), к планировщику noop или deadline для SSD. Например, использование планировщика noop просто обрабатывает запросы в том порядке, в котором они получены, без какого-либо учета того, где данные физически находятся на диске. Этот вариант считается выгодным для SSD, поскольку время поиска идентично для всех секторов SSD.
Добавьте в /etc/rc.local следующее:
# SSD performance tuning echo noop > /sys/block/sda/queue/schedulerИнформация
один два
4) включить автоматический TRIM
Если ваш SSD поддерживает его, вы также должны включить автоматический TRIM (как описано здесь )
TRIM позволяет операционной системе сообщать SSD, какие блоки данных больше не используются и могут быть протерты внутренне. Обрезка позволяет SSD обрабатывать накладные расходы на сбор мусора, что в противном случае значительно замедляло бы будущие операции записи в задействованные блоки заблаговременно. 1
В Ubuntu 14.04 добавлена новая функция в пакет util-linux , который автоматически обрезает SSD-файлы автоматически, но по умолчанию только SSD-устройства Intel и Samsung имеют TRIM, потому что некоторые дешевые SSD-устройства могут даже скреститься при запуске TRIM. 2 Содержимое /etc/cron.weekly/fstrim в Ubuntu 14.04:
#!/bin/sh # call fstrim-all to trim all mounted file systems which support it set -e # This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty # firmware may encounter data loss problems when running fstrim under high I/O # load (eg https://launchpad.net/bugs/1259829). You can append the # --no-model-check option here to disable the vendor check and run fstrim on # all SSD drives. exec fstrim-all1https://en.wikipedia.org/wiki/Trim_%28computing%292Как включить Trim?
Ок "длинный рассказ короткий":
- Да. Это похоже на нормальный hdd. Вот хороший обзор.
- Некоторые специальные дополнения, которые я расскажу.
- Довольно хорошо. Я использую его с сервером.
Отформатируйте как ext4 во время установки и создайте небольшой своп ~ 1 ГБ. После установки отредактируйте fstab с помощью sudo gedit /etc/fstab и добавьте следующую строку
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0Это создаст ramdrive для ваших временных файлов, что приведет к снижению старения. Также добавьте noatime,nodiratime,discard вашу строку ext4 после настроек по умолчанию. Это также уменьшит износ и активирует функцию TRIM. Сохраните и перезагрузите компьютер.
Я бы не добавил эту строку в вашу fstab, папка var / tmp предназначена для выживания перезагрузки, и это может вызвать проблемы для вас.
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0Когда я настраиваю новую систему, я оставляю все tmp-папку прокомментированными таким образом, если что-нибудь случится, я могу проверить журналы и прочее. Затем, как только у меня будет основная системная настройка, я их не буду комментировать, но никогда не добавляю вышеприведенную строку, вот что я использую:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 tmpfs /var/log/apt tmpfs defaults,noatime 0 0И если у меня возникнут проблемы с моей системой, я прошу прокомментировать их, чтобы проверить все даже после перезагрузки или принудительной перезагрузки после блокировки.
Также вам не нужен nodiratime, noatime опция заботится обо всех.
Что касается TRIM, если ваш hw / sw поддерживает его, это обязательно, я не использую discard в fstab. Я создаю ежедневный cron, потому что мой компьютер всегда включен, делая следующее:
gksu gedit /etc/cron.daily/trimЗатем добавьте это в файл и сохраните (если у вас нет отдельного / домашнего раздела на ssd или других частей, находящихся на ssd, вы должны получить представление о том, как это изменить:
#!/bin/sh LOG=/var/log/trim.log echo "*** $(date -R) ***" >> $LOG fstrim -v / >> $LOG fstrim -v /home >> $LOGЗатем сделайте исполняемый файл:
sudo chmod +x /etc/cron.daily/trimЯ также редактирую свой rc.local так:
gksu gedit /etc/rc.localДобавьте это выше «exit 0» и ниже последнего #:
# Modification for SSD # you may want to add more folders to be checked/created to this list for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do if [ ! -e /var/log/$dir ] ; then mkdir /var/log/$dir fi doneВы можете скопировать и вставить отсюда, чтобы не было ошибок, для непрофессионала это выглядело из-за удара, это не так.
Я также прочитал, что оставляя 10% вашего диска ssd неформатированным, может помочь продлить жизнь, что еще предстоит выяснить. Я не так много читал в этом, поэтому я не могу ручаться, если это имеет смысл сделать это.
Это лучший из всех гидов, он не обошел вокруг Google в течение дня, а затем придумал проводника, вы должны проверить его ЗДЕСЬ
Есть некоторая хорошая информация. Как настроить и оптимизировать SSD для Ubuntu, Linux Mint с http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html, вы можете быть заинтересованным в
Использовать предварительную загрузку
Чтобы установить предварительную загрузку в Ubuntu, Linux Mint или дистрибутивы на основе debian
# apt-get update && apt-get install preloadОтключите свой своп
Чтобы изменить настройку swappiness:
$ su - # nano /etc/sysctl.confИ добавьте эту строку в файл sysctl.conf.
vm.swappiness = 10ИБП требуется. В файле /etc/sysctl.conf
vm.dirty_writeback_centisecs = 15000 vm.swappiness = 10Найдите демона конфигурационного файла, обычно /etc/syslog.conf или /etc/rsyslog.d/ и все пути формы /var/log/ change, написав знак минус («-») перед путями. mail.err
/var/log/mail.errПосле mail.err -/var/log/mail.err
используйте FS btrfs и используйте опцию -o ssd
Подробнее http://vasilisc.com/speedup_ubuntu_eng#speedup_fs
Понятно, что /var/tmp не должно быть в tmpfs, поскольку по определению его содержимое необходимо сохранить за перезагрузкой:
- Различия между TMP и VarTMP
Как настроить и оптимизировать SSD для Ubuntu, Linux Mint
Включить TRIM
Команда TRIM (команда Trim позволяет ОС знать, какие блоки SSD не используются и могут быть очищены)
Сначала создайте резервную копию fstab, если произойдет что-то неправильное.
# cp /etc/fstab ~/fstab.bkРедактировать файл fstab
# nano /etc/fstabДобавить сброс на диски или разделы ssd, после ext4
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1 Adding noatime and nodiratimenoatime и nodiratime – опции монтирования в linux для файловой системы Linux. noatime отключает обновления atime в файловой системе, а nodiratime отключает обновления atime в системе каталогов. Добавляя noatime, и nodiratime значительно уменьшит нагрузку ssd, это означает увеличение производительности.
Редактировать файл fstab
# nano /etc/fstabДобавьте noatime, nodiratime к вашим дискам или разделам ssd, после ext4
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1Я предлагаю размещать только те вещи, которые читаются во время загрузки на SSD, возможно, приложения, требующие много времени для загрузки. Даты и журналы и другие некритические вещи, которые я нашел бы на обычном жестком диске. Также вы можете настроить свой ubuntu только на загрузку большие initramfs из SSD во время загрузки и не записывать обратно изменения в ssd. Это имеет преимущество, что изменения в этом разделе не являются постоянными, что является защитой для вашей системы загрузки. Для этого вам потребуется гораздо больше ОЗУ, конечно.
Например, я бы разместил разделы SS /, / etc, / usr, / boot, / lib 32/64 на SSD, в то время как sth like
/ opt, / bin, / sbin, / root, / home и даже swap (увеличить RAM !!!) на HDD
Википедия говорит:
Ядро Linux поддерживает функцию TRIM, начиная с версии 2.6.33. Файловая система ext4 поддерживается при установке с использованием параметра «discard». Самые последние дисковые утилиты (и, следовательно, программное обеспечение для установки, которые их используют) также применяют правильное выравнивание разделов.
Для резервных копий существует множество способов, самым простым из которых является (r) синхронизация плюс работа cron.
ubuntu.fliplinux.com
Оптимизация Ubuntu 11.10 для работы с SSD
Не так давно я наконец приобрёл себе SSD жёсткий диск. Острой нужды в нём не испытывал, но было очень интересно поиграться с ним. К сожалению, как только я его приобрёл, я сильно заболел. В итоге новенькое устройство две недели лежало без дела. Но таблетки помогли, я вновь полон сил, и собираюсь рассказать как настроить Ubuntu 11.10 для работы с SSD.
Лишние танцы с бубном нужны из за того, что у SSD куда более больший износ, чем у привычных HDD. Поэтому нужно ограничить число записей на жёсткий диск к минимуму. Я не утверждаю, что мой способ оптимизации самый лучший, но как мне показалось всё довольно таки неплохо.
Отмечу, что у меня на компьютере не только Ubuntu, но и Windows. Обе эти ОС стоят на одном SSD. Так же, помимо SSD на 60Gb, у меня установлен HDD на 1Tb.
Установка Ubuntu 11.10 на SSD
Я решил установить Ubuntu с ноля. Стал вопрос о создании отдельных разделов. Путём чтения множества манов было выяснено, что самые частоперезаписываемые каталоги - это /home (ну это было очевидно), /tmp и /var. Можно было устроить заморочки, и настроить монтирование /tmp и /var в оперативную память. Так же были другие варианты, но я решил раз есть HDD, то и поставлю это всё на него. Так я слегка проигрываю в скорости, зато не так сильно изнашиваю SSD. Файловую систему я не трогал, так и оставил везде ext4, но слегка допилил.
Ах да. Файл подкачки я не ставил, ибо думаю, что восьми гигабайт оперативной памяти ОС хватит за глаза.
Файловая система и TRIM
Внимание! Инструкция ниже - ошибочная! Правильная технология включения TRIM описана тут: TRIM - Разгоняем SSD в Ubuntu. Добавлять discard в /etc/fstab не нужно!
Как известно, ext4 - журналируемая файловая система. Для SSD это не хорошо. Рекомендуют отключать его, но я обошёлся более простым способом, а именно - отключил запись времени обращения к файлам и папкам. Для этого открываем /etc/fstab:
Нам нужна примерно такая строчка:
# / was on /dev/sda5 during installation UUID=a189806d-eb0e-4d69-8fc6-e7e3d7eb53d7 / ext4 errors=remount-ro 0 1
# / was on /dev/sda5 during installation UUID=a189806d-eb0e-4d69-8fc6-e7e3d7eb53d7 / ext4 errors=remount-ro 0 1 |
Нужно добавить некоторые дополнительные опции. Я добавил noatime, nodiratime и discard.
- discard - Включает технологию TRIM, которая распределяет нагрузку на SSD
- noatime и nodiratime - Благодаря этим опциям ОС не будет записывать время последнего обращения к файлам и папкам
Получилось примерно так:
# / was on /dev/sda5 during installation UUID=a189806d-eb0e-4d69-8fc6-e7e3d7eb53d7 / ext4 noatime,nodiratime,discard,errors=remount-ro 0 1
# / was on /dev/sda5 during installation UUID=a189806d-eb0e-4d69-8fc6-e7e3d7eb53d7 / ext4 noatime,nodiratime,discard,errors=remount-ro 0 1 |
Отключаем работу с файлом подкачки
Хоть я и не делал swap раздел, я всё равно отключил работу с файлом подкачки. Так, на всякий случай. Для этого открываем файл /etc/sysctl.conf и прописываем следующий параметр:
Что бы изменения вступили в силу, нужно перезагрузить компьютер, либо ввести следующую команду:
Отложенная запись
С помощью отложенной записи ядро будет хранить данные, ожидающие записи на диск, и записывать их либо при острой необходимости, либо по истечении таймаута. Обычно время хранения ставится на 60 секунд, но можно и больше. Для этого открываем файл /etc/sysctl.conf:
sudo gedit /etc/sysctl.conf
sudo gedit /etc/sysctl.conf |
Далее добавляем нужные параметры:
vm.laptop_mode = 5 vm.dirty_writeback_centisecs = 6000
vm.laptop_mode = 5 vm.dirty_writeback_centisecs = 6000 |
Меняем планировщик
Для работы с SSD диском больше подходит планировщик noop. Для начала проверим какой именно планировщик у вас включен:
cat /sys/block/sda/queue/scheduler
cat /sys/block/sda/queue/scheduler |
В квадратных скобках выводится тот планировщик, что у вас установлен на данный момент. Если это не noop - исправляем. Для этого нужно отредактировать GRUB:
sudo gedit /etc/default/grub
sudo gedit /etc/default/grub |
В открывшемся файле ищем опцию GRUB_CMDLINE_LINUX_DEFAULT. По дефлоту там стоит только "quiet splash". Прописываем рядом "elevator=noop". У меня получилось следующее:
GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop"
GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop" |
Я удалил значения "quiet splash", так как не нуждаюсь в красивой картинке при запуске, а выиграть пару секунд хотелось.
После всех манипуляций не забываем обновить GRUB:
Итог
Что же я получил в итоге. Не скажу, что время на загрузку системы ощутимо уменьшилось, ибо оно и так было буквально несколько секунд. А вот программы действительно стали бегать ощутимо быстрее. Даже LibreOffice, который всегда загружался довольно долго, теперь готов к работе спустя несколько секунд после запуска.
В общем если вам важна каждая секунда - SSD ваш выбор. Если нет то можно легко обойтись, Ubuntu итак довольно быстрая система.
ubuntovod.ru
TRIM - Разгоняем SSD в Ubuntu
Всем хороши твердотельные накопители Solid State Disk (SSD), но есть у них и несколько малоприятных особенностей. Некоторые из них можно легко исправить своими силами.
Например, у SSD, по мере использования, заметно снижается скорость работы. Чтобы это предотвратить, нужно периодически выполнять операцию TRIM. Во время проведения этой процедуры, операционная система информирует диск о том, какие блоки данных более не используются и которые неплохо бы очистить, чтобы не тратить на очистку время в нужный момент, когда вдруг потребуется записать в этот блок данные.
Проблема в том, что не все ОС понимают что такое TRIM и для чего нужна эта процедура. Ubuntu, например, не понимает. Но это легко поправить. Для этого потребуется выполнение следующих условий:
- Ядро Linux не старее версии 2.6.33
- Сам диск должен поддерживать TRIM
- Файловая система должна быть либо Ext4, либо Btrfs
Если о том, как обновить ядро пользователь примерное представление имеет, то о проверке поддержки диском операции TRIM следует сказать отдельно. Проверить такую поддержку можно следующим образом:
sudo hdparm -I /dev/sda | grep "TRIM supported"
sudo hdparm -I /dev/sda | grep "TRIM supported" |
Разумеется, вместо /dev/sda нужно подставить путь к вашему диску.
Активация поддержки TRIM
Создаем файл /etc/cron.daily/trim и добавляем в него следующие строки:
#!/bin/sh LOG=/var/log/trim.log echo "*** $(date -R) ***" >> $LOG fstrim -v / >> $LOG fstrim -v /home >> $LOG
#!/bin/sh LOG=/var/log/trim.log echo "*** $(date -R) ***" >> $LOG fstrim -v / >> $LOG fstrim -v /home >> $LOG |
Не забываем сделать этот файл исполняемым:
sudo chmod +x /etc/cron.daily/trim
sudo chmod +x /etc/cron.daily/trim |
Все, теперь вас ждут невиданные доселе скорости работы с SSD.
Как не надо делать
Широкую известность получил другой способ выполнения TRIM в Ubuntu. К сожалению, неверный. Заключается он в добавлении параметра discard в /etc/fstab. Так делать не надо.
ubuntovod.ru
Lin.in.ua :: Оптимизация SSD под Ubuntu
В данной мини-статье мне хотелось бы собрать и рассмотреть основные моменты оптимизации работы (и, конечно, продления жизненного цикла ) твердотельных накопителей. Практически всю информацию можно легко найти в сети, но тут я попытаюсь упомянуть пару подводных камней.Первое, с чего стоит начать — это выбор файловой системы. Если система на десктопе — то особо вопросов не возникает — брать журналируемую ext4 — у которой масса преимуществ перед остальными ФС. Да, будет больше циклов записи на носитель, но будет гарантия того, что в случае сбоя питания вы не потеряете данные. На ноутбуках, нетбуках — имеются батареи, и вероятность отключения из-за потери питания — практически нулевая (но, конечно, всякое бывает), в связи с чем журналирование, обычно рекомендуют отключать. Если это очень хочется сделать, то после установки системы грузимся с liveCD, и пишем в терминалеtune2fs -O ^has_journal /dev/sda1e2fsck -f /dev/sda1
Другие способы не рекомендуются — потеряете поддержку TRIM. Также не стоит отключать журнал, добавляя параметр "writeback" в конфигурацию fstab — система не запустится из-за ошибки монтирования (если до этого был включен трим).
Следующее, что нужно учесть — файл подкачки. Под моим никсом (сейчас — убунту 11.04) обычно пишется код, смотрятся фильмы в HD и активно серфится интернет. За это время файл подкачки не понадобился ни разу, максимальное потребление ОЗУ было 1Гб, из 2х доступных в нетбуке. Если Ваш сценарий использования системы подобен моему, или у Вас не десктоп — файл подкачки не нужен. Иначе стоит его перенести на HDD. Если журналирование еще можно оставить, ввиду его относительной безобидности, то своп-раздел — однозначно зло, сжирающее как ограниченные циклы перезаписи, так и недешевые гигабайты, количеством которых современные SSD пока не могут похвастаться.
Ну вот, система поставлена — можно заниматься оптимизацией! Самый первый шаг — включение TRIM — главная технология, которая должна продлить жизнь и распределить нагрузку SSD.Делается очень просто — открываем fstab (например так)
gksudo gedit /etc/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 0tmpfs /var/tmp tmpfs defaults 0 0tmpfs /var/lock tmpfs defaults 0 0tmpfs /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 прослужит вам верой и правдой, и с каждым стартом будет радовать хорошей скоростью.
Источник: http://habrahabr.ru/blogs/linux/129551/
lin.in.ua
Настройка Ubuntu для работы с SSD
В прошлый раз я рассказывал об установке твердотельного накопителя (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 done8. Ограничение своппинга
Максимально ограничить использование системой swap-раздела можно, добавив строчку в /etc/sysctl.conf:
vm.swappiness=19. Кэш браузера на 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.
См. также
yktoo.com
Настройка диска ssd в ubuntu в связке с hdd
Хочу поделиться опытом настройки диска ssd в Ubuntu. А также развеять мифы оптимизации. К тому же расскажу о монтировании дополнительного диска hdd, чтобы хранить большие объемы информации.
На свой ноутбук купил ssd диск, к тому же вместо оптического привода вставил hdd диск на 500 гигабайт, чтобы хранить фильмы, музыку, фотки.
1. Выравнивание диска ssd.
Итак, хотелось бы сказать про то, что на многих сайтах советуют выравнивать диски ssd. Хочу вас уверить, что и fdisk и gparted и стандартный менеджер разбивки дисков при установке ubuntu автоматически выравнивают разделы.
Вот таким образом я разбил свой диск ssd:
Для корневого раздела "/" выделил стандартно 40 гигабайт.Для "swap" 4 гигабайта. (swap это хорошее дело на ssd, дальше опишу почему)Для "/home" домашнего каталога - все остальное.
(Первый раздел это 200 мегабайт - загрузочный раздел для uefi. В следующей статье расскажу как легко и просто поставить ubuntu на uefi)
Так вот, проверяется диск на выравнивание выполнением следующей команды в консоле: sudoparted /dev/sda align-check opt 1
Если будет выдано следующее сообщение:
"aligned", то значит ваш диск выравнен.И не надо читать кучу форумов об этом, сидеть с калькулятором и вымерять, все делается автоматически, при использовании популярных программ, таких как gparted, gdisk, fdisk или менеджер дисков установщика.
2. Swap раздел нужен на ssd.
Работа со swap в Ubuntu идёт примерно ~40:1 чтение:запись.Поэтому не нужно объяснять, что чтение с ssd диска будет идти быстрее, чем с hdd.Единственное, что нужно сделать, это изменить параметр swappiness на значение 10. О том, как это можно сделать, написано в этой моей статье:
3. Настройка Trim.
О том, что такое Trim, можно почитать на википедии.Скажу лишь, что это команда, которая посылает контроллеру информацию о том, где уже были удалены файлы и освобождено место, чтобы очистить информацию на диске.
Если TRIM не работает, накопитель узнает об удалении файла только в тот момент, когда ОС прикажет ему перезаписать LBA, покрывающий ставший ненужным файл.
Вся суть сводится к тому, чтобы включить это.Для начала нужно проверить, поддерживает ли ваш ssd Trim, делается это выполнение следующей команды в терминале: sudo hdparm -I /dev/sda | grep "TRIM supported"
Если в результате будет сообщение "Trim supported":
То можно перейти к самой настройке включения.
Можно запускать в ручную командой:sudo fstrim / -v
Выполнение может занять какое-то время, в случае успешности операции, вы увидите следующее сообщение:
То значит Trim был успешно выполнить.
Автоматическое включение можно настроить добавление discard в опции монтирования fstab, об этом расскажу ниже. (Но многие говорят, что это плохой способ)Либо создав задачу в Cron (менеджере задач по расписанию):Создаем ежедневную задачу с именем "trim" следующей командой:sudo gedit /etc/cron.daily/trim И в открывшийся текстовый файл вставляем следущее:
#!/bin/shLOG=/var/log/trim.logecho "*** $(date -R) ***" >> $LOGfstrim -v / >> $LOGfstrim -v /home >> $LOG
После чего, сохраняем и закрываем.Теперь сделаем данный файл исполняемым следующей командой:sudo chmod +x /etc/cron.daily/trim
Теперь ubuntu будет каждый день выполнять trim.Не советую добавлять параметр discard в опции монтирования fstab.
Стоит упомянуть, что Trim в linux работает только со следующими файловыми системами: ext4 и btrfs.
4. Монтирование разделов в fstab.При загрузке системы, у вас монтируются диски и разделы, которые указаны в файле:
/etc/fstab
В принципе, если у вас один жесткий диск ssd, то можете смело им пользоваться без тех настроек, что описаны в данном пункте.Я в данном файле примонтировал второй жесткий диск, для того, чтобы примонтировать каталоги Музыка, Видео и Изображения, которые будут весить много места и на sdd они все не поместятся.Ну и еще можно переместить на hdd с ssd каталог /var, так как в него пишется очень много всякого, например логи и деб пакеты перед установкой программ.
Отредактируем данный файл, выполнив следующую команду в терминале:sudo gedit /etc/fstab
Откроется текстовый файл, где перечислены монтируемые устройства:У меня он вот такой (кликните по изображению для увеличения):
Разберем теперь как примонтировать (подключить) новый жесткий диск к системе.Это у меня делается следующей строчкой:
UUID="5cfa4dbd-fca2-470a-a785-ebc56cd29387" /diskette ext4 defaults 0 2
Разберем данную команду подробнее.1 параметр. Это UUID устройства. Увидеть его можно либо в gparted щелкнув по разделу дважды мышкой. Либо выполнив в терминале команду:blkid
И появится весь список устройств с UUID:
Мне нужен выделенный раздел жесткого диска, в этой строчке выделяем наш UUID и прописываем в первом параметре.
2 параметр. Это точка монтирования.Это папка, через которую будет производиться обращение к разделу. В принципе, может быть любой.Прежде чем монтировать в какую-либо папку, не забудьте ее создать.Например в моем случае этоsudo mkdir /diskette
3 параметр. Это файловая система. Думаю объяснения не нужно, если не уверены как пишется или не знаете, то для ленивых есть параметр "auto".
4 параметр. Это параметры монтирования. В принципе достаточно defaults.Вот какие параметры можно использовать: exec - Разрешение на запуск исполняемых файлов. Опция включена по-умолчанию.noexec - Запрет на запуск исполняемых файлов.auto - Раздел будет автоматически монтироваться при загрузке системы. По-умолчанию.noauto - Раздел не будет автоматически монтироваться при загрузке системы.ro - Монтирование только для чтения.rw - Монтирование для чтения и записи. По-умолчанию.user - Разрешение простым пользователям монтировать/демонтировать этот раздел.nouser - Запрещает простым пользователям монтировать/демонтировать этот раздел. По-умолчанию.defaults - Использование всех параметров по-умолчанию.discard - Включает Trim на раздела с ФС ext4 и btrfs (очень не рекомендуется)
5 параметр. Флаг бэкапа.Если 1 - то программа dump включит этот раздел при резервном копировании.Если 0 - то этот раздел не будет включен при резервном копировании.
6 параметр. Порядок проверки разделов.Устанавливает порядок проверки раздела при монтировании на наличиеошибок. Если установить один и тот же порядок для двух разделов, онибудут проверяться одновременно.Если 0 - раздел не проверяется.
Таким вот образом можно примонтировать новый жесткий диск к определенному каталогу в систему.
Но если мы выставили параметр монтирования defaults, то на данном жестком диске мы не сможем выполнять операции создания и удаления.Для этого нам нужно получить права на новый диск, делается это очень просто, выполняем в терминале команду: sudo chmod -R 777 /diskette/
естественно в команде вместо /diskette/ вы указываете свою точку монтирования.
И теперь, когда мы примонтировали жесткий диск, мы можем перегрузиться и проверить что он монтируется.Теперь вот можно перейти к самому интересному. А именно к монтированию каталогов. Переносу Музыка, Видео, Загрузки на HDD, потому что на нем намного больше места.Почему не перенести всю папку home? Потому что в ней хранятся файлы конфигураций и многое другое, высокая скорость чтения которых обязательна. Иначе зачем вообще покупать ssd?
Монтируются каталоги следующим способом.В каталоге точки монтирования, у меня это /diskette/ создаем каталоги с такими же названиями Музыка, Видео и тдПосле чего прописываем следующую команду:
/diskette/Музыка /home/edward/Музыка none bind 0 0
Разберем данный случай для монтирования каталогов,первым параметром мы указываем нашу новую папку на HDD, которая монтируется в каталог домашней папки Музыка.Обязательные параметры none bind 0 0.Таким образом вы можете прописать и другие каталоги по желанию.
Вот что получилось в моем случае:
В домашний каталог можно записать всего лишь 77 гигабайт, а в папку Видео можно записать почти 500 гигабайт информации.
Вот таким образом можно настроить свою систему.
Больше ничего делать не нужно с ssd. Не нужно настраивать commit, atime и прочую ересь, что несут в других блогах. Это все было актуально на старых моделях ssd, когда они только появились.
Вообще забудьте, что у вас SSD. Просто пользуйтесь им.
www.linuxrussia.com