Российский хостинг на NVMe SSD

Основные преимущества NVMe дисков в сравнении с SATA или SAS аналогами

Максимальная скорость чтения и записи современных жестких дисков (HDD) составляет около 200-250Мбайт/сек у обычных 7200rpm моделей и чуть более 300Мбайт/сек у серверных 10000-15000rpm. А среднее время доступа около 8мс и 4мс соответственно.

Это именно производительность физических носителей. Но также у всех дисков есть некоторый объем буферной памяти (RAM-кэш). Считывание из буффера (при повторном обращении) и запись в него (при сохранении данных на диск) происходят с гораздо меньшими задержками на максимальной скорости интерфейса.

Максимальная пропускная способность SATA-3 и SAS-2 интерфейсов равна примерно 550Мбайт/сек. SAS-3 - до 1500Мбайт/сек. Однако опять же, это лишь максимальная скорость обмена с кэш-буффером. Скорость и время доступа при работе с самими магнитными пластинами все также оставалось медленной и печальной. Лишь более оборотистые 10-15k диски показывали чуть лучший результат.

В первых моделях SSD основным преимуществом считалось значительно уменьшившееся время доступа. Около 50 микросекунд (0.05мс), что на целых два порядка ниже, чем у жестких дисков. Хотя скорость чтения (и тем более скорость записи, т.к. она всегда ниже) редко дотягивала до максимума SATA-3. Но позже появились заметно более быстрые SAS-3 SSD. И снова встал вопрос верхней планки пропускной способности интерфейса подключения.

Чем ближе к процессору, чем меньше контроллеров-посредников, тем выше скорость и ниже время доступа. Поэтому следующим этапом стал отказ от SAS и SATA в пользу прямого подключения к шине PCI-Express.

Скорость 1 линии PCIe 2.0 равна примерно 500Мбайт/сек, 3.0 - 1Гбайт/сек, 4.0 - 2Гбайт/сек. Таким образом, очевидно, что потолок скорости SSD диска зависит от версии PCIe (поколения) и количества используемых линий (обычно 2-4x, но бывают и 8-16x)

Самые ранние модели появились еще в эпоху PCIe 2.0. Один из представителей, Micron P320h, используется в сервере KIEV1 нашего хостинга. Целых 8 линий (хоть и лишь 2.0) достаточно для обеспечения до 3.2Гб/сек на чтение и 1.9Гб/сек на запись. Время доступа приблизительно 40мксек при чтении и 10мксек - запись. Этот старичек даст приличную фору очень многим современным NVMe SSD. Все потому, что здесь используются самые лучшие и дорогие SLC ячейки. А ресурс записи в 50Петабайт делает этот диск практически бессмертным. Если Вы все еще скептически относитесь к SSD в плане надежности, разместите свои сайты на этом сервере и будьте спокойны.

Micron P320h, Intel P3700 NVMe SSD

На смену дорогой SLC пришла не такая быстрая и менее надежная MLC флэш память. В используемом у нас в сервере KIEV2 используется один из самых надежных и производительных NVMe SSD - Intel P3700 на High Endurance MLC ячейках. Здесь используется двукратный резерв емкости. Т.е. диск емкостью 800Гб физически содержит 1.6Тб флэш памяти (от этого и высокая цена). Благодаря чему даже полностью заполненный диск можно хоть полностью перезаписать без ощутимой потери скорости. Любой другой обычный SSD в подобной ситуации непременно столкнется с отсутствием очищенных ячеек для записи и в результате - повышенные задержки и тормоза.

Очень важно понимать разницу между скоростью работы с буффером (RAM или SLC кэш) и скоростью работы самих ячеек флэш-памяти. Практически любые короткие тесты (в которых объемы информации не превышают нескольких гигабайт) показывают на самом деле скорость работы буффера. Обмен данными же с самими ячейками может быть значительно менее быстрым.

P3700 Crystal Disk Mark

В отличие от домашнего использования, сервер веб-хостинга оперирует куда большим разнообразием данных, обслуживая сотни сайтов. И очевдно, что размера кэша хватает далеко не всем. Гораздо чаще диску приходится заниматься считыванием и записью с самими ячейками. Вот тут и оказывается, что далеко не все SSD одинаковы. Даже если они тоже NVMe, даже если тоже показывают "скоростя" в бенчмарках. Но дешевые NVMe SSD просто не предназначены для серверного использования, где в первую очередь важны не гигабайты в секунду, а количество операций в секунду (IOPs) при работе малыми случайными блоками. А также устоявшаяся скорость более чем наполовину заполненного данными диска, а не та, которую обычно показывают в замерах новые и пустые. Если взглянуть к примеру на CrystalDiskMark тесты практически любых SSD, то окажется, что скорость работы 4k блоками не особо и отличается у NVMe и SATA дисков. Все потому что у самой flash памяти есть свои пределы, которые преодолеваются различными ухищрениями. Например тем же буффером или использованием своего рода RAID массива внутри одного диска. Когда контроллер SSD диска одновременно работает с множеством ячеек и таким образом суммарная пропускная способность увеличивается. Но в основном лишь при последовательном доступе крупными блоками данных. А при случайном доступе небольшими 4Кбайт блоками, даже с глубокой очередью (множество одновременных обращений к диску), в лучшем случае будут скорости в районе тех же SATA3 - около 500Мбайт/сек.

Случайное чтение 4k блоками в один поток или очень малой глубиной очереди - самая тяжелая задача для всех SSD на основе flash памяти. Обратите внимание на результаты тестов по этому показателю. Даже лучшие NVMe представители показывают лишь в районе 50Мбайт/сек скорость. И когда какой-то хостинг обещает вам 4-6 кратное ускорение только потому что у них используется NVMe SSD - это по большей мере вранье маркетинг, чем правда многократное ускорение работы сайта...

Да, с NVMe SSD возможны скорости свыше 3Гбайт в секунду. Но разве кто-то уточняет, что это возможно лишь при последовательном доступе крупными блоками, либо при очень большом количестве одновременных обращений? Как это связано с Вашим сайтиком на WordPress? Правильно - никак. Ведь сайты состоят из большого числа мелких файлов, а не одного большого. MySQL сервер также в основном предпочитает множество коротких обращений к диску. И это радикально отличается от, к примеру, просто копирования крупных видеофайлов, когда действительно можно увидеть гигабайты в секунду.

Вывод можно сделать такой, что правильный SATA SSD верхнего ценового сегмента корпоративного класса именно в работе хостинг сервера может оказаться заметно производительней, чем какой-то домашний, хоть и NVMe. Даже если элементарно сравнить габариты NVMe SSD обычного формата M.2 и серверных размером с видеокарту - ответ очевиден.

Однако прогресс не стоит на месте. Недавно разработанные Intel (ТМ Optane) и Micron (ТМ QuantX) ячейки памяти под названием 3D Xpoint приходят на замену десятилениями используемой традиционной NAND flash памяти. Помимо на порядок более скоростной работы малыми блоками с малой очередью, 3DXpoint SSD могут обходиться без кэш памяти вообще. А значит показываемые ими скорости постоянны независимо от размера буффера и независимо от того, давно ли производилась очистка ячеек (TRIM).

Intel Optane 900p 4k low queue depth

Это скриншот скорости случайного чтения 4к блоками глубиной очереди 1 установленного в нашем сервере BOYARKA1 Intel Optane 900p. Наглядно видно, что этот NVMe SSD практически на порядок более скоростной в этой самой главной характеристике диска для web-хостинга.

Intel p3700 vs. 900p Optane

Таким образом на нашем не медленном NVMe хостинге представлены на выбор одни из лучших представителей PCI-Express NVMe SSD различных видов.

Выбирая хостинг для сайта, нужно осознавать, что диск далеко не главная составляющая. Каким бы он ни был, а оперативная память все равно на много быстрее. И чем больше ее доступно Вашему сайту, тем лучше. Также крайне важен процессор, в первую очередь его тактовая частота. Ведь даже с самым быстрым NVMe SSD и много гигабайт RAM, но на процессоре 2GHz, Ваш WordPress, Bitrix или другая тяжелая CMS будет все также работать очень медленно. Или если соседи по серверу будут создавать повышенную нагрузку, то никакое, даже самое скоростное железо не спасет.

Optane NVMe Hosting Bitrix 300+