Оптимизация Ubuntu для SSD
Если у вас есть UPS, он же ИБП, то можно применить советы из .
Параметр discard.
Включает полезную команду TRIM и настоятельно рекомендуется к применению к различным файловым системам. discard нужно указать в /etc/fstab. Разработчики многих дистрибутивов linux обсуждали иногда возникающую проблему с discard, которая приводит к падению производительности. Альтернативным путём является вызов fstrim из cron. Пробуйте и выбирайте своё!
Параметр ssd для btrfs.
Указывайте для файловых систем btrfs в /etc/fstab.
Параметр commit=600.
Замечательный параметр commit равный 600 можно применять ко многим файловым системам и commit указывает на сброс грязных файловых буферов каждые 10 минут (600). Настоятельно рекомендуется иметь ИБП. commit=600 нужно указать в /etc/fstab.
barrier=0
Код файловой системы обязан перед созданием записи фиксации быть абсолютно уверенным, что вся информация о транзакции помещена в журнал. Просто делать запись в правильном порядке недостаточно; современные диски имеют кэш большого объёма и меняют порядок записи для оптимизации производительности. Поэтому файловая система обязана явно сообщить диску о необходимости записать все журнальные данные на носитель перед созданием записи фиксации; если сначала будет создана запись фиксации, журнал может быть повреждён. Блокирующая система ввода-вывода ядра предоставляет такую возможность благодаря использованию механизма «шлагбаумов» (barriers); проще говоря, «шлагбаум» запрещает запись любых блоков, посланных после него, до того момента, как всё, что было прислано перед «шлагбаумом», будет перенесено на носитель. При использовании «шлагбаумов» файловая система может гарантировать, что всё, что находится на диске, целостно в любой момент времени. Отключая шлагбаум barrier=0, мы ускоряем операции записи на разделы.
barrier=0 нужно указать в /etc/fstab.
Для btrfs указывайте nobarrier.
LVM.
Если вы используете технологию LVM, то нужно указать в /etc/lvm/lvm.conf параметр issue_discards = 1.
Preload.
Демон, кешируюший обращения к файлам и ускоряющий IO вывод. В SSD диске нет вращающихся блинов и считывающих головок, то желательно в /etc/preload.conf изменить параметр и привести его к виду sortstrategy = 0. Этим самым вы прикажете не производить сортировку очереди запросов, так как для SSD это не имеет смысла. Перезапустите preload — sudo /etc/init.d/preload restart
Увеличим сброс грязных буферов vm.dirty_writeback_centisecs = 15000 в /etc/sysctl.conf.
У демонов журналирования rsyslogd или syslogd перед всеми путями к журналам поставим знак минус и заставим не делать sync после добавления одной строки в журнал. Демон ведения журналов syslog (а также идущий ему на смену — rsyslog) пишет журналы в каталоге /var/log/ и добавив одну строку делает операцию sync, которая сводит на нет кэш диска и более долгий сброс буферов. Можно изменить поведение демона и указать не делать sync после каждого добавления. Найдите файл конфигураций демона, обычно это /etc/syslog.conf или /etc/rsyslog.d/ и все пути вида /var/log/что-то-там/ измените, дописав знак минус («-«) перед путями.
В файл /etc/sysctl.conf в конец файла вставьте строку vm.swappiness = 10 и тем самым заставьте Ubuntu Linux больше занимать ОЗУ, чем swap. Как это достигается подробно расписано в .
По умолчанию в Ubuntu Linux в качестве файлового планировщика используется CFQ, он старается минимизировать перемещения головок, но у SSD нет движущихся частей и CFQ не нужен. Нужно в файле /etc/default/grub добавить elevator=noop и получить строку, типа GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash elevator=noop». Не забудьте
Теперь перезагрузка вашего ПК и получите оптимизированную под плюсы и скрывающая минусы SSD систему Ubuntu Linux. Порадуйте себя скоростью SSD
Износ SSD и PostgreSQL
На самом деле я хотел посмотреть скорость износа ssd при различных нагрузках на запись в Postgres, но как правило на нагруженных базах ssd используются очень аккуратно и массивная запись идет на HDD. Пока искал подходящий кейс, наткнулся на один очень интересный сервер:
Износ двух ssd в raid-1 за 3 месяца составил 4%, но судя по скорости записи WAL данный постгрес пишет меньше 100 Kb/s:
Оказалось, что постгрес активно использует временные файлы, работа с которыми и создает постоянный поток записи на диск:
Так как в postgresql с диагностикой достаточно неплохо, мы можем с точностью до запроса узнать, что именно нам нужно чинить:
Как вы видите тут, это какой-то конкретный SELECT порождает кучу временных файлов. А вообще в постгресе SELECT’ы иногда порождают запись и без всяких временных файлов — вот тут мы уже про это рассказывали.
Советы SSD
1) Меньше пишешь на SSD, лучше.
2) Постоянная запись множества мелких файлов — самое большое зло для SSD. Запись на SSD производится блоками (вплоть до 128 Кб) и маленькие файлы вынуждают стирать блоки большего размера.
3) Располагать раздел подкачки на SSD можно и нужно. Работа с подкачкой характеризуются большим количеством чтения по сравнению с записью (40 к 1), и относительно большими объемами записи, так что пользы от гораздо более быстрого доступа к данным больше, чем вреда.
4) Если команда iotop часто показывает запись процесса в раздел, находящийся на SSD, сделай так, чтобы процесс туда писал реже или вообще не писал. Не бойся редкой записи — бойся постоянной, периодической записи. Смотри п.п 1.
5) Забудь про дефрагментацию, её больше для тебя не существует. Если увидел слово онлайн дефрагментация или дефрагментация на-лету, найди и выключи это.
6) В Ubuntu Linux кроме системного индексатора updatedb, остальные индексаторы хранят файлы-базы-данных в домашнем каталоге. Подумайте о необходимости этих индексаторов-поисковиков, если не нужны — отключайте/удаляйте.
Отличный видеоматериал, правда на английском языке, но всё понятно из самого видео и открытых окон как оптимизировать Linux для SSD.
Дополнительная оптимизация операционной системы Linux для работы на SSD
Для того, чтобы продлить жизнь твердотельному накопителю, как SSD, так и обычному флеш-накопителю, нужно по-возможности сократить для них количество операций записи в единицу времени. В том числе сделать это можно путем оптимизации опций монтирования в файле fstab.
В качестве файловой системы для каталога /boot была не случайно выбрана нежурналируемая файловая система ext2. Журналируемые ФС, с одной стороны, являются устойчивыми к аварийным ситуациям, но с другой стороны, увеличивают количество записей на жесткий диск.
Для разделов Btrfs, размещенных на SSD, добавляем опцию ssd. Как изменится после этого алгоритм работы с диском досконально неизвестно. Можно предположить, что при старте или в процессе работы на накопителе будут отыскиваться незанятые блоки и регулярно освобождаться. Одним словом, хуже не будет.
Отмечается, что для твердотельных накопителей старого типа более целесообразной может быть опция ssd_spread.
Операции чтения файлов также могут создавать большую нагрузку на твердотельный накопитель, так как при каждом обращении записывается время доступа к файлу или директории (atime). Запись на диск происходит даже при чтении из кеша.
Избежать этого можно добавив опции noatime, nodiratime, которые отключают запись меток времени соответственно для файлов и для директорий (по некоторым источникам noatime включает в себя nodiratime).
Альтернативой им может быть более демократичная опция relatime. При ее использовании метки времени обновляются, но не при каждом обращении к файлу, а только в том случае, если файл был изменен с момента последней записи atime.
Прописываем relatime для всех разделов, расположенных на SSD.
Окончательно у меня получилось так:
Сохраняем fstab и переходим к sysctl.conf
Добавляем в конец файла:
Параметр в сотых долях секунды определяет как часто будет осуществляться запись данных на диск из кеша. В данном случае получится каждые 15 секунд. Таким образом мы опять же уменьшаем количество операций записи на SSD в единицу времени.
При этом, естественно, повышается вероятность потери данных в случае непредвиденного отключения питания. Для ноутбука или нетбука с исправным аккумулятором вероятность такой неприятности крайне невелика.
Это далеко не все. Оптимизационные мероприятия можно продолжить и, например, перенести на RamDisk браузерный кеш.
Установка Linux на том Btrfs с включенной компрессией
В качестве подопытного кролика тестового стенда вновь будет выступать старенький ASUS Eee PC 900. Чего он только ни повидал за прошедшие годы. Интересно, много ли у кого сегодня сохранился этот первый представитель окончательно вымершего сегодня семейства нетбуков?
Для запланированного эксперимента с Btrfs это просто идеальный образец.
Во-первых, два крошечных (4 Гб и 8 Гб) SSD накопителя, больший из которых к тому же еще и в два раза медленнее маленького. На самом деле оба флеш-диска очень медленные и не имеют ничего общего, по крайней мере по скорости, с современными твердотельными накопителями.
Во-вторых, само устройство на процессоре Intel Celeron M 900 МГц ну очень небыстрое, что сразу же позволит даже безо всяких тестов просто визуально оценить успех или неудачу данного эксперимента.
Изначально я планировал установить на Eee PC 900 Linux Mint-17.1 xfce. Однако очень скоро с этой идеей пришлось проститься. Инсталлятор Linux Mint требовал минимум 8.2 Гб свободного места на диске и в упор не хотел видеть ни второй диск, ни заранее собранный из двух накопителей том Btrfs объемом почти 12 Гб. О том, чтобы объяснить инсталлятору, что установка будет выполняться на сжатый том и на самом деле одного диска объемом 4 Гб будет достаточно, речь вообще не шла.
Задачу можно было бы легко решить с помощью LVM, как это было описано здесь, но очень уж не хотелось добавлять совершенно ненужную в данном случае прослойку между дисками и файловой системой Btrfs – она сама отлично справляется с многодисковыми конфигурациями.
Если соберетесь устанавливать Linux Mint на файловую систему Btrfs, имейте в виду, что в дистрибутив, по крайней мере в тот, о котором здесь идет речь, поддержка этой файловой системы не включена. Для того, чтобы иметь возможность отформатировать разделы с Btrfs, необходимо установить btrfs-tools:
Так как поддержка Btrfs включена в ядро, Mint после установки загрузится, но для того, чтобы можно было делать некие манипуляции с томами, установку btrfs-tools придется повторить.
Дальнейшие события показали, что выбор оказался весьма удачным. Облегченный набор приложений и шустрое окружение – это как раз то, что нужно для неторопливого нетбука.
Последняя на момент написания данной статьи 5-я версия этой ОС базируется на Ubuntu 14.04 LTS с пятилетним сроком поддержки. Возможность работы с файловой системой Btrfs присутствует сразу.
Проблема установки состояла в том, что компрессия включается в Btrfs на стадии монтирования файловой системы (-o compress=lzo / zlib ), а стандартный инсталлятор Linux, по крайней мере в Ubuntu и основанных на ней системах, не дает выбирать расширенные опции.
Создаем загрузочную флешку с помощью Universal USB Installer. Загружаем компьютер с нее и заходим в терминал:
Переименовываем исполняемый файл mount в mount.bin
Создаем файл скрипта mount
Вместо gedit вы можете использовать любой текстовый редактор, входящий в состав Live CD.
Вписываем в mount следующий код:
Во избежание ошибок вы можете заранее создать текстовый файл с указанным содержанием и записать его на Live флешку, или открыть данную страницу непосредственно в Live сеансе и скопировать его с нее.
Сохраняем файл и делаем его исполняемым:
Приступаем к установке.
Она ничем не отличается от описанной, например здесь.
Разбиение диска нужно выполнить самостоятельно. Для этого на этапе “Тип установки” выбираем “Другой вариант”.
Под /boot необходимо обязательно создать в начале диска раздел размером примерно 200 Мб. В противном случае система со сжатого диска не загрузится.
В данном случае под /home отдельный раздел выделять не нужно – в процессе установки для этого каталога будет автоматически создан подтом (subvolum — /@/home).
Если система устанавливается на обычный (не SSD) диск, нужно сделать раздел подкачки объемом 2 х RAM.
До первой перезагрузки можно сразу же отредактировать fstab (file systems table). Для этого придется смонтировать выделенный при установке под корень файловой системы раздел.
Если это был, например, sda2, то:
Обратите внимание, что корневой раздел также попал на подтом и путь к нему включает в себя “@”. Находим в fstab строки, касающиеся монтирования Btrfs томов и заменяем defaults на compress=lzo (конкретный пример fstab см
ниже)
Находим в fstab строки, касающиеся монтирования Btrfs томов и заменяем defaults на compress=lzo (конкретный пример fstab см. ниже).
Перезагружаем компьютер, теперь уже с жесткого диска
Особенности работы SSD
Классические жёсткие диски (HDD) хранят данные в магнитном слое. Для чтения и записи используется позиционируемая магнитная головка. Перемещение считывателя требует какого-то времени, поэтому скорость работы HDD ограничена.
Принцип работы SSD основан на использовании электронных ячеек памяти. Единицу информации хранит заряд внутри транзистора, обращение к ячейкам выполняет контроллер. Задержки при чтении или записи минимальны.
Однако с каждой новой перезаписью ячейка разрушается и перестаёт удерживать заряд. Контроллер постоянно проверяет ячейки и переписывает информацию в исправные блоки. Когда свободное место заканчивается, накопитель приходится заменять.
Инженеры успешно работают над продлением срока службы SSD, но сами пользователи также могут продлив срок жизни накопителя, правильно настроив операционную систему.
В Интернете есть сотни советов, выдаваемых поисковиками по запросу «Установка Linux на SSD», однако мы советуем воспринимать написанное с осторожностью. Остановимся на моментах, способствующих улучшению состояния SSD-хранилища без риска потери данных
Настало время поговорить о недостатках этих “больших флешек”
Первый недостаток, который многим может показаться серьезной проблемой – ограниченный срок жизни SSD. Дело в том, что флеш-память имеет определенное количество циклов перезаписи.
Важен общий вес данных, записанных на него в течение всего срока службы.
К тому же, в связи с особенностями работы SSD, при счете нужно перемножать объем записанных на него данных в 9-10 раз. Т.е. 3
Гигабайта – это почти 30, почти четверть цикла перезаписи диска вместимостью 120 Гигабайт. Однако это не точные цифры, я взял с запасом. На деле – все зависит от того, каким образом расходовалось пространство на накопителе.
Не стоит сразу пугаться, в среднем SSD рассчитаны на 3 года, а то и на 5 лет службы. Если конечно, не скачивать на них сотни гигабайт данных ежедневно.
Сказать с уверенностью, какой диск более долговечен – SSD или HDD, я, увы, не могу. Есть множество других нюансов, которые влияют на продолжительность их жизни. Но по устойчивости ко внешним воздействиям, явно выигрывает SSD.
Второй недостаток – цена.
Цена SSD может быть в разы выше, чем стоимость винчестера той же вместительности. Наверняка, со временем, ситуация немного изменится, но сегодня такой диск выгоднее брать для ПК как дополнительный, установить на него операционную систему и некоторые приложения, а все остальное хранить на HDD.
Ну и наконец, последняя проблема SSD, которая вскоре, наверняка, решится – максимальный объем памяти. SSD появились намного позже винчестеров, и пока даже лучшие из доступных моделей не могут вмещать столько данных, сколько влезет в HDD, относящийся к высокой ценовой категории. Но это, скорее всего, лишь вопрос времени. Можно, попросту, использовать сразу несколько запоминающих устройств.
Вот этот ссд стоит 11.000 $
Вот характеристикa
Заключение.
На данный момент, мне не кажется, что покупка ПК или ноутбука с SSD будет хорошей затеей для обычного пользователя. Как-никак, его цена в разы выше стоимости старого доброго винчестера. Кто-то посчитает отличия этих двух типов накопителей важными для себя. Например, геймеры очень любят приобретать дорогое оборудование, даже при незначительном выигрыше в быстродействии системы.
Однако, на скорость игр, т.е на частоту кадров, наличие SSD накопителя повлиять не должно.
В общем, без особой надобности, покупать SSD в качестве единственного внутреннего жесткого диска, я пока не советую. А вот как второй накопитель, он вполне может себя оправдать.
Для себя и знакомых заказываю по низким ценам и все товары качественные,претензий нет ссылка тут (рекомендую)
Установите GNU / Linux на PCI Express SSD:
У вас должна быть возможность загрузить или установить систему на жесткий диск. PCIe SSD Без проблем. Но если у вас возникнут проблемы, вы можете попробовать следующее:
- Убедитесь, что вы BIOS / UEFI (прошивка) допускает загрузку для этих типов дисков. К сожалению, не все из них, хотя, если они современные, они должны это выдержать.
- Убедитесь, что система загружается (или пытается) напрямую с другого жесткого диска SATA, присутствующего в системе, а не с диска PCIe. В этом случае это может быть просто переместить приоритет загрузитесь в меню BOOT вашего BIOS / UEFI, чтобы сначала использовать PCIe …
- Обновите GRUB также с помощью команды sudo grup-update.
- Попробуйте использовать другую файловую систему или файловую систему, так как некоторые прошивки SSD обычно не поддерживают ext4 должным образом. Попробуйте другой или прочтите руководство по SSD, чтобы узнать, какие форматы он поддерживает.
Опции монтирования файловой системы Btrfs для традиционных механических жестких дисков
Твердотельный накопитель SSD в нетбуке скорее все же исключение, чем правило. Поэтому для тех, кто вслед за мной захочет поэкспериментировать с установкой Linux на Btrfs, приведу некоторые полезные опции монтирования дисковых томов обычных HDD, размеченных с помощью этой файловой системы.
space_cache – включает кэширование данных о свободных блоках в памяти. Без этой опции в процессе поиска свободного пространства перед записью Btrfs будет всякий раз сканировать все дерево. По результатам большинства тестов Phoronix включение опции space_cache дает выигрыш в скорости работы с диском, хотя и не столь существенный, как опция compress.
autodefrag — дефрагментация файлов на лету.
В конечном счете для HDD должно получиться примерно так:
Mobilemark: результаты тестов производительности
Получить зачёт в Mobilemark очень престижно. Именно MM имитирует нагрузку, с которой часто сталкиваются накопители*. Hitachi здесь показал себя очень даже неплохо — не находите?.. :)*список имитируемых Mobilemark программ:
- Adobe AcrobatReader 7.0
- Adobe Illustrator CS2
- Adobe Photoshop CS2
- Apple Quicktime 7.1
- Intervideo WinDVD 8
- Macromedia Flash 8
- Microsoft Office 2003 Pro
- Microsoft Project 2003
- Winzip 10.0
- Mobilemark: время работы от батареи
Как видите, лишь SSD-драйв от Sandisk смог вплотную приблизиться к результатам Hitachi. Но самое интересное здесь то, что Mobilemark 07 тестирует накопители в разных режимах нагрузки. Что было бы с SSD, если бы прогнать тесты в состоянии бездействия :)?
Скорость SSD и HDD
https://youtube.com/watch?v=7mkUz4w3y-M
Да, именно за этот показатель переплачивает пользователь, когда отдает предпочтение SSD-хранилищу. Его скорость многократно превосходят показатели, которыми может похвастать HDD. Система способна загружаться всего за несколько секунд, на запуск тяжеловесных приложений и игр уходит значительно меньше времени, а копирование больших объемов данных из многочасового процесса превращается в 5–10 минутный.
Единственное «но» — данные с SSD накопителя удаляются настолько же быстро, насколько копируются. Поэтому при работе с SSD вы можете просто не успеть нажать кнопку отмена, если однажды внезапно удалите важные файлы.
История дисков
Жесткие магнитные диски имеют весьма продолжительную (разумеется, по меркам развития компьютерных технологий) историю. В 1956 году компания IBM выпустила малоизвестный компьютер IBM 350 RAMAC, который был оснащен огромным по тем меркам накопителем информации в 3,75 МБ.
В этих шкафах можно было хранить целых 7,5 МБ данных
Для построения такого жесткого диска пришлось установить 50 круглых металлических пластин. Диаметр каждой составлял 61 сантиметр. И вся эта исполинская конструкция могла хранить… всего одну MP3-композицию с низким битрейтом в 128 Кб/с.
Вплоть до 1969 года этот компьютер использовался правительством и научно-исследовательскими институтами. Еще каких-то 50 лет назад жесткий диск такого объема вполне устраивал человечество. Но стандарты кардинально изменились в начале 80-х.
На рынке появились дискеты формата 5,25-дюймов (13,3 сантиметра), а чуть позднее и 3,5- и 2,5-дюймовые (ноутбучные) варианты. Хранить такие дискеты могли до 1,44 МБ-данных, а ряд компьютеров и того времени поставлялись без встроенного жесткого диска. Т.е. для запуска операционной системы или программной оболочки нужно было вставить дискету, после чего ввести несколько команд и только потом приступать к работе.
За всю историю развития винчестеров было сменено несколько протоколов: IDE (ATA, PATA), SCSI, который позднее трансформировался в ныне известный SATA, но все они выполняли единственную функцию «соединительного моста» между материнской платой и винчестером.
От 2,5 и 3,5-дюймовых флоппи-дисков емкостью в полторы тысячи килобайт, компьютерная индустрия перешла на жесткие диски такого же размера, но в тысячи раз большим объемом памяти. Сегодня объем топовых 3.5-дюймовых HDD-накопителей достигает 10 ТБ (10 240 ГБ); 2.5-дюймовых — до 4 ТБ.
История твердотельных SSD-накопителей значительно короче. О выпуске устройства для хранения памяти, которое было бы лишено движущихся элементов, инженеры задумались еще в начале 80-х. Появление в эту эпоху так называемой пузырьковой памяти было встречено весьма враждебно и идея, предложенная французским физиком Пьером Вейссом еще в 1907 году в компьютерной индустрии не прижилась.
Суть пузырьковой памяти заключалась в разбиении намагниченного пермаллоя на макроскопические области, которые бы обладали спонтанной намагниченностью. Единицей измерения такого накопителя являлись пузырьки. Но самое главное — в таком накопителе не было аппаратно движущихся элементов.
О пузырьковой памяти очень быстро забыли, а вспомнили лишь во время разработки накопителей нового класса — SSD.
В ноутбуках SSD появились только в конце 2000-х. В 2007 году на рынок вышел бюджетный ноутбук OLPC XO–1, оснащенный 256 МБ оперативной памяти, процессором AMD Geode LX–700 с частотой в 433 МГц и главной изюминкой — NAND флеш-памятью на 1 ГБ.
OLPC XO–1 стал первым ноутбук, который использовал твердотельный накопитель. А вскоре к нему присоединилась и легендарная линейка нетбуков от Asus EEE PC с моделью 700, куда производитель установил 2-гигабайтный SSD-диск.
В обоих ноутбуках память устанавливалась прямо на материнскую плату. Но вскоре производители пересмотрели принцип организации накопителей и утвердили 2,5-дюймовый формат, подключаемый по протоколу SATA.
Емкость современных SSD-накопителей может достигать 16 ТБ. Совсем недавно компания Samsung представила именно такой SSD, правда, в серверном исполнении и с космической для обычного обывателя ценой.
Установите GNU / Linux на M.2 SSD:
Установите свой дистрибутив Linux на SSD M.2 Это несколько менее проблематично, чем в Optane, поскольку в данном случае это память, которая стала более популярной для компьютеров всех типов, включая те, которые мы используем дома. Этот тип жесткого диска идентичен твердотельному накопителю SATA, отличается только используемый интерфейс или технология подключения и, следовательно, скорость и производительность передачи данных.
Однако некоторые пользователи сталкивались с черные экраны или проблемы при загрузке с твердотельного накопителя M.2, если на устройстве хранения этого типа размещен раздел / boot или загрузчик. Чтобы решить их, вы можете прочитать эти шаги:
1-Предполагая, что вы делаете это в режиме UEFI:
Если вы устанавливаете систему в Режим UEFI, а не с примитивным или устаревшим BIOS, вы можете попробовать следующее:
- Убедитесь, что вы правильно разбиваете разделы, например те 100 МБ для раздела UEFI в формате FAT, и что у вас есть правильная точка монтирования. Вы можете использовать для этого собственную систему разметки установщика или GParted. Помните, что Раздел UEFI он должен быть первым.
- Si Tu ядро текущее и шаг первый в порядке, у вас не должно возникнуть проблем с M.2.
Если у вас есть BIOS или UEFI, но вы используете Устаревший режим или CSM, то вы должны:
- Создайте раздел размером около 1024 КБ в начале жесткого диска и пометьте его как Загрузочный раздел BIOS. Вы можете использовать для этого разные инструменты, как я уже упоминал, например cgdisk или упомянутые выше.
- Продолжайте выполнять все остальные операции в обычном режиме и должны работать правильно, если ядро имеет соответствующие драйверы поддержки. Кстати, если это новое устройство, которое вы добавляете в систему или уже имели GRUB установлен, вам нужно будет переустановить его.
Если ничего из этого не помогло, а проблемы остались, перейдите к разделу, посвященному NVMe…
Выравнивание разделов на SSD
Суть проблемы в том, что если начало разделов в секторах не кратно размеру кластера файловой системы, то резко падает производительность при чтении/записи с диска, а в случае с SSD диском ещё и увеличивается износ диска. То есть когда разделы не выравнены, то кластер файловой системы занимает несколько секторов и тем самым увеличивается количество операций чтения/записи. Подробнее об этой проблеме выравнивания разделов лучше прочесть в Интернете. Главное запомнить простое правило: создаёте раздел — его стартовый сектор должен делиться на 8 без остатка.
Начальные сектора 2048 и 514048 кратны 8! Я использовал fdisk и в нём создал разделы /boot, / и swap. Из статьи на Хабре выяснил, что работа со swap в современных операционных системах идёт примерно ~40:1 чтение:запись. Поэтому размещение swap на SSD это отличная идея. Чуть позже мы заставим Ubuntu Linux меньше использовать swap, а больше быструю ОЗУ.
Некоторое место на вашем SSD зарезервировано и недоступно вам, это место будет использовано для замены износившихся во время записи-перезаписи ячеек. Во время разметки диска, я оставил не размеченой область ~3,5 Гб, чтобы контроллеру диска было чем заменять, в далёком будущем, вышедшие из строя ячейки. Вам так же рекомендую не жадничать и при разметке оставить чуток не размеченной области.
Установка на SSD Ubuntu
Во время установки я указал, что первый раздел на SSD это /boot и файловая система ext3. Просто я решил помочь grub’у и не огребать не нужных проблем. В /boot хранятся ядра системы и размера 250 мб должно хватить на много установленных параллельно ядер.
Второй раздел на SSD стал корнем / в BTRFS. У этой продвинутой файловой системы, есть замечательный параметр -o ssd. Указав его, мы сообщаем, что жёсткий диск вида SSD и улучшаем работу с ним. Указать параметр можно позже, отредактировав /etc/fstab
Раздел /home был и его не форматируя через установщик, я задействовал как и раньше. Все файловые системы, кроме /boot, указаны в BTRFS.
Итого
- Количество записи на диск, которую создает Redis+RDB зависит не от количества модификаций в базе, а от размера базы + интервала дампов (и вообще, это наибольший уровень write amplification в известных мне хранилищах данных)
- Активно используемый swap на ssd — плохо, но если вам нужно внести jitter в износ ssd (для надежности raid-1), то может сойти за вариант:)
- Помимо WAL и datafiles базы данных могут ещё писать на диск всякие временные данные
Мы в okmeter.io считаем, что для того, чтобы докопаться до причины проблемы инженеру нужно много метрик про все слои инфраструктуры. Мы изо всех сил в этом помогаем:)