Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:ssd [2015/11/13 07:42] [Источники] |
wiki:ssd [2019/06/27 23:24] (текущий) [Приоритет использования swap] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Настройка Ubuntu для работы с SSD ====== | + | <note important>Начиная с Ubuntu 14.04 разработчики позаботились о поддержке SSD. Система сама периодически запускает функцию TRIM на SSD, никаких discard в fstab больше не требуется. И многие другие советы, которые можно найти в интернете уже не актуальны, не создавайте себе проблем, просто пользуйтесь. Данная статья уже сильно урезана, оставлены только актуальные советы, да и те совсем не обязательны.</note> |
- | Как всем известно SSD очень быстры, но имеют один маленький (или не маленький) недостаток - ограниченное число циклов записи. Т.е. их надо стараться больше использовать на чтение, а запись свести к минимуму, дабы свести риск выхода из строя диска раньше времени к минимуму. Статья написана для Ubuntu 14.04 и более новых версий. | + | |
<note important>Обсуждение статьи - http://forum.ubuntu.ru/index.php?topic=190119 | <note important>Обсуждение статьи - http://forum.ubuntu.ru/index.php?topic=190119 | ||
- | Просьба к редакторам тоже там отписываться</note> | + | Просьба к редакторам тоже там отписываться |
+ | |||
+ | --- [[user>thunderamur]] | ||
+ | </note> | ||
+ | |||
+ | |||
+ | ====== Настройка Ubuntu для работы с SSD ====== | ||
+ | Как всем известно SSD очень быстры, но имеют один маленький (или не маленький) недостаток - ограниченное число циклов записи. Т.е. их надо стараться больше использовать на чтение, а запись свести к минимуму, дабы свести риск выхода из строя диска раньше времени к минимуму. Статья написана для Ubuntu 14.04 и более новых версий. | ||
====== Настройка /etc/fstab ====== | ====== Настройка /etc/fstab ====== | ||
Строка 16: | Строка 24: | ||
Комментируем (#) строку со словом **swap** | Комментируем (#) строку со словом **swap** | ||
<file>#UUID=xxxx-xxxx-xxxx-xxxx none swap sw 0 0</file> | <file>#UUID=xxxx-xxxx-xxxx-xxxx none swap sw 0 0</file> | ||
+ | Для систем, у которых systemd надо еще отключить службу | ||
+ | <code bash> | ||
+ | systemctl --type swap | ||
+ | sudo systemctl mask <имя юнита> # или sudo ln -s /dev/null /etc/systemd/system/<имя юнита></code> | ||
Если же памяти для задач ОС маловато, то пробуем настроить [[ssd#Приоритет использования swap|приоритет использования swap]] | Если же памяти для задач ОС маловато, то пробуем настроить [[ssd#Приоритет использования swap|приоритет использования swap]] | ||
===== Опции монтирования ===== | ===== Опции монтирования ===== | ||
- | Для EXT4: | ||
- | <file>UUID=aeade6fd-2b24-4e59-bc8c-6f1791338b0c / ext4 noatime,errors=remount-ro 0 1</file> | ||
- | |||
Для BTRFS: | Для BTRFS: | ||
- | <file>UUID=aeade6fd-2b24-4e59-bc8c-6f1791338b0c / btrfs noatime,ssd,compress=lzo 0 1</file> | + | <file>UUID=aeade6fd-2b24-4e59-bc8c-6f1791338b0c / btrfs compress=lzo,defaults,subvol=@ 0 1</file> |
- | * noatime - Благодаря этим опциям ОС не будет записывать время последнего обращения к файлам и папкам | ||
- | * ssd - btrfs имеет специальный режим для работы с SSD. | ||
* compress - сжатие файлов (lzo - рекомендумое значение, быстрое сжатие; zlib - выше уровень сжатия, но значительно медленнее, больше нагрузка ЦПУ, больше потребление батареи на ноутбуках. | * compress - сжатие файлов (lzo - рекомендумое значение, быстрое сжатие; zlib - выше уровень сжатия, но значительно медленнее, больше нагрузка ЦПУ, больше потребление батареи на ноутбуках. | ||
- | <note important>Арчвики рекомендуют использовать space_cache - btrfs сохраняет свободное пространство на диске, чтобы сделать кэширование группы блоков гораздо быстрее. Включать не стал, т.к. сам не понимаю механизм работы и не уверен в нужности в общем случае (для всех)</note> | + | После применения этой опции новые файлы будут сжиматься при записи, а также старые при изменении. Если хотите сжать уже установленную систему нужно применить команду [[wiki:ssd#Дефрагментация BTRFS со сжатием файлов|дефрагментации со сжатием]]. |
- | <note>Можно также использовать commit=600, если у вас имеется ИБП, т.к. возможна потеря данных за последние 600 сек. работы при внезапном выключении питания.</note> | + | <note>Часто рекомендуют опцию discard - активирует TRIM для SSD. Опция discard не использована в силу того, что в Ubuntu начиная с версии 14.04 разработчики позаботились о пользователях. Система сама периодически делает fstrim-all, эта команда тримит SSD в момент запуска (команды), а не на лету как discard. Но результат один, деградации скорости не будет.</note> |
- | <note>Часто рекомендуют опцию discard - активирует TRIM для SSD. Опция discard не использована в силу того, что в Ubuntu начиная с версии 14.04 разработчики позаботились о пользователям. Система сама периодически делает fstrim -all, это команда за тримит SSD в момент запуска, а не на лету как discard. Но результат один, деградации скорости не будет.</note> | + | Как видим BTRFS хорошо приспособлена для SSD. Ранее BTRFS имела проблемы с производительностью, особенно при установке пакетов. Сейчас, на свежих ядрах 4.* я не вижу этой проблемы, работает быстро. |
- | Как видим BTRFS более приспособлена для SSD. Ранее BTRFS имела проблемы с производительностью, особенно при установке пакетов. Сейчас, на свежих ядра 4.* я не вижу этой проблемы, работает быстро. | + | ===== Кэш apt в ОЗУ ===== |
- | + | ||
- | ===== Помещаем в ОЗУ некоторые директории ===== | + | |
<code>tmpfs /var/cache/apt/archives tmpfs defaults 0 0</code> | <code>tmpfs /var/cache/apt/archives tmpfs defaults 0 0</code> | ||
- | <note important>Кэш apt не будет сохраняться на диске и при переустановке пакетов, потребуется их выкачивать заново</note> | + | <note important>Кэш apt не будет сохраняться на диске и при переустановке пакетов, потребуется их выкачивать заново. Кроме того это не сильно поможет нашему SSD, т.к. пакеты сжатые, а при установке занимают в 5-10 раз больше места, чем в архиве. Также это увеличит использование ОЗУ. После включения убедитесь, что в системе хватает памяти для выполнения ваших задач</note> |
- | <code>tmpfs /run tmpfs defaults 0 0</code> | + | ====== Дефрагментация BTRFS со сжатием файлов ====== |
- | <code>tmpfs /tmp tmpfs defaults 0 0</code> | + | <note important>Для SSD не требуется дефрагментация. В данном случае она применена для того, чтобы сжать файлы уже установленной системы</note> |
+ | |||
+ | Для выполнения нужно загрузиться в живую сессию, примонтировать раздел с BTRFS и применить команду дефрагментации со сжатием: | ||
+ | |||
+ | <code>sudo btrfs fi def -clzo -r /media/<путь до раздела btrfs>/{@,@home}</code> | ||
+ | |||
+ | У себя я получил коэффициент сжатия 0.63, было 5.21 ГБ, стало 3.7 ГБ, т.е. в 1.5 раза меньше запись на SSD в процессе дальнейшей работы. Замечу, что я не храню на SSD плохо сжимаемые файлы - аудио, видео, фото и т.п., они размещены на другом разделе. | ||
- | <note important>Эти настройки увеличат использование ОЗУ. После включения убедитесь, что в системе хватает памяти для выполнения ваших задач</note> | ||
====== Отключение дискового кэша в браузерах ====== | ====== Отключение дискового кэша в браузерах ====== | ||
Строка 60: | Строка 71: | ||
Настройки -> Дополнительные инструменты -> Инструменты разработчика (<key>C</key>+<key>S</key>+<key>I</key>) -> Настройки (значек шестеренки) -> поставить галочку Disable cache (while DevTools is open) | Настройки -> Дополнительные инструменты -> Инструменты разработчика (<key>C</key>+<key>S</key>+<key>I</key>) -> Настройки (значек шестеренки) -> поставить галочку Disable cache (while DevTools is open) | ||
====== Настройка /etc/sysctl.conf ====== | ====== Настройка /etc/sysctl.conf ====== | ||
+ | |||
+ | <note important>Не уверен в актуальности этих настроек. Сам не использую в силу снижения надежности ФС, если их применить. Кто обладает достоверной информацией скорректируйте или поделитесь на форуме в теме обсуждения данной статьи.</note> | ||
Открываем **/etc/sysctl.conf**: | Открываем **/etc/sysctl.conf**: | ||
<file>sudo gedit /etc/sysctl.conf</file> | <file>sudo gedit /etc/sysctl.conf</file> | ||
- | ===== Отложенная запись ===== | ||
- | <note important>Не уверен в актуальности этих настроек. Кто обладает достоверной информацией скорректируйте или поделитесь на форуме в теме обсуждения данной статьи.</note> | ||
- | <note warning>Включение этих параметров уменьшает надежность системы, есть риск потери данных за последние 60 секунд в случае сбоя питания, паники ядра и т.п.</note> | ||
- | |||
- | Ядро будет копить данные, ожидающие записи на диск, и записывать их либо при острой необходимости, либо по истечении таймаута. Я выбрал для себя 60 секунд. | ||
- | |||
- | Добавляем в конец файла: | ||
- | <file>vm.laptop_mode = 5 | ||
- | vm.dirty_writeback_centisecs = 6000</file> | ||
- | Для применения изменений | ||
- | <code> | ||
- | sudo sysctl -p | ||
- | </code> | ||
===== Приоритет использования swap ===== | ===== Приоритет использования swap ===== | ||
- | Если памяти маловато, то можно просто уменьшить агрессивность свопинга. В **/etc/sysctl.conf** добавляем строчку | + | Если памяти маловато, то можно просто попробовать уменьшить агрессивность свопинга процессов (за счет уменьшения буферов и кешей). В **/etc/sysctl.conf** добавляем строчку |
- | <file>vm.swappiness=10</file>Параметр управляет процентным соотношением свободной памяти при котором начнётся свопинг. | + | <file>vm.swappiness=10</file>В некоторых случаях это может помочь. Более подробно про vm.swappiness можно почитать [[https://help.ubuntu.ru/wiki/swap#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80_vmswappiness|тут]]. |
<note important>Хотя, если у вас мало ОЗУ и вы купили себе SSD... то вы поступили не верно.</note> | <note important>Хотя, если у вас мало ОЗУ и вы купили себе SSD... то вы поступили не верно.</note> | ||
Строка 89: | Строка 89: | ||
sdX - ваш SSD. | sdX - ваш SSD. | ||
+ | |||
====== Источники ====== | ====== Источники ====== | ||
+ | [[https://help.ubuntu.ru/wiki/btrfs]] | ||
+ | |||
[[http://ru.wikipedia.org/wiki/TRIM]] | [[http://ru.wikipedia.org/wiki/TRIM]] | ||