Источники и составные части производительности ввода-вывода серверов. Вид снаружи

04.04.2018 | Серверы

Сервер неуместного наполнения сводит на нет возможности прикладного ПО. И наоборот, учет особенностей трафика данных при выборе компонентов поднимает результативность и позволяет избежать лишних трат. Инфраструктура вычислений и хранения набирается из стандартных аппаратных «кирпичиков» - об этом было в первой части «Источники и составные части производительности ввода-вывода серверов. Вид изнутри». Вот несколько примеров доводки типовых платформ под специфические нужды приложений. 

 

Серверы баз данных

В погоне за производительностью обычно начинают с переноса файлов баз данных (database, DB) на SSD. Профиль нагрузок баз данных – обращения случайного доступа c большой долей операций записи и относительно невысокими в среднем, но значительными пиковыми нагрузками в IOPS. Размещение DB на SSD позволяет сглаживать эти пики и записывать данные с минимальными задержками, недостижимыми механическим дискам.

При запуске MS SQL сервера создается tempDB – системная база временных, часто перезаписываемых объектов (таблиц, переменных, процедур). Запросы к ним просаживают общую производительность систем с большим количеством расчетных и сравнительных операций: в производственном планировании, логистических задачах учетных систем, обмене данными с другими базами. Активной записи во временные таблицы обычно сопутствует активное чтение из основной базы данных, и наоборот, поэтому стараются вынести tempDB на отдельные от DB физические носители (а то и в оперативную память, с указанием резервного пути на постоянный носитель).

У каждой базы SQL сервера есть журнал транзакций log, в котором фиксируются все изменения данных. Это важная составляющая базы данных, позволяющая при сбое вернуть ее в согласованное состояние. Транзакция не окончена, пока не сделана запись в журнал. Протоколирование, плотный поток коротких линейных операций, критично к задержкам записи. Ради производительности, а также по соображениям сохранности данных, файлы журнала и основной базы хранят на разных физических носителях. При этом tempDB и log могут совмещаться на одном томе SSD.

Каков бы ни был размер основной базы данных, вспомогательные области: файлы индексов, временных таблиц, журналов – сравнительно невелики. Под них имеет смысл отводить самые скоростные носители – NVMe SSD. Появление Intel Optane SSD на памяти 3D XPoint добавляет возможностей управления производительностью.  Хотя 3D XPoint SSD дороже NAND SSD, для размещения на них tempDB и SQL log уж очень привлекательна высокая производительность Optane на коротких очередях запросов

Пример дисковой подсистемы cервера SQL:

DB

2-4 x 800GB SAS SSD HGST Ultrastar SS200

tempDB, SQL log

2 x 375GB Intel Optane P4800X или

2 x 800GB U.2 SSD HGST Ultrastar SN200

 

 

HGST Ultrastar SS200 800GB

Intel Optane P4800X 375GB

HGST Ultrastar SN200 800GB

Interface

12Gb SAS

x4 PCIe

x4 PCIe

Flash type

MLC NAND

3D Xpoint

MLC NAND

Sequential Read, MB/s

1,800

2,400

3,350

Sequential Write, MB/s

1,000

2,000

2,100

Random Read, IOPS

250,000

550,000

835,000

Random Write, IOPS

86,000

500,000

200,000

Mixed Random Read (70%)/Write (30%), IOPS

154,000

-

550,000

Latency

100 μs

10 μs

20 μs

Endurance, DWPD

3

30

3

 

Серверы - узлы Storage Spaces Direct

Storage Spaces Direct (S2D) – технология распределенного хранения данных в составе Windows Server 2016 Datacenter Edition. Cерверы с локальными дисками объединяются в отказоустойчивый масштабируемый кластер, защищенный от выхода из строя как отдельных дисков, так и серверов целиком. Программно-определяемое решение без единой точки отказа позволяет обойтись без традиционных массивов SAN или NAS. Высокая производительность операций ввода-вывода достигается локализацией дисковых обращений, использованием кэширования, многоуровневого хранения, оптимального сочетания накопителей NVMe/SAS/SATA, cетевого протокола RDMA.

S2D работает с тремя типами дисков: NVMe, SSD, HDD, в различных комбинациях:

Для S2D под нагруженными VM (в том числе, с SQL OLTP) важно обеспечить предсказуемо низкие (менее миллисекунды) задержки между случайными операциями чтения/записи любых данных и много IOPS. Для этого используются флэш-накопители, обычно связка NVMe SSD for Cache + SATA SSD for Capacity. 

 

NVMe принимают на себя интенсивные операции записи журнала и данных, перенося их на SATA SSD только при необходимости или по расписанию – для уменьшения износа слоя Capacity. Запись «на скорости NVMe» - отличительная особенность S2D. Чтение обслуживается непосредственно с SATA SSD, достаточно быстрых для этого.

 

Усугубляет дисковую нагрузку «блендер виртуализации», который перемалывает совокупные запросы ввода-вывода VM (включая линейные) в поток обращений случайного доступа с малым размером блока. В грануляте велика доля операций записи (до 50-70%) – что накладывается на без того высокие требования SQL к быстрому обслуживанию файлов баз данных, журналов и временных таблиц. При таких условиях роль кэширующего слоя NVMe неоценима.

 

Пример дисковой подсистемы узла S2D:

Cache

2 x 800GB U.2 SSD HGST Ultrastar SN200

Capacity

4 x 1.92TB SAS SSD HGST Ultrastar SS200 (VM/SQL) или

4 x 1.92TB SATA SSD SanDisk CloudSpeed Eco Gen. II (VM)

 

 

HGST Ultrastar SN200 800GB

HGST Ultrastar SS200 1.92TB

SanDisk CloudSpeed Eco Gen II 1.92TB

Interface

x4 PCIe

12Gb SAS

6Gb SATA

Flash type

MLC NAND

MLC NAND

MLC NAND

Sequential Read, MB/s

3,350

1,800

530

Sequential Write, MB/s

2,100

1,000

460

Random Read, IOPS

835,000

250,000

76,000

Random Write, IOPS

200,000

37,000

14,000

Mixed Random Read (70%)/Write (30%), IOPS

550,000

90,000

-

Latency

20 μs

100 μs

-

Endurance, DWPD

3

1

0.6

Серверы – узлы VSAN

Virtual SAN (VSAN) – конвергентная архитектура VMware, платформа хранения данных корпоративного уровня. Распределенная инфраструктура вычислений и хранения строится из блоков – серверов. VSAN собирает из локальных дисков серверов виртуальное «внешнее» хранилище, доступное всем вычислительным узлам кластера виртуализации. Двухуровневое хранение включает кэширующий слой (Cache) и постоянный слой (Capacity). Поддерживается All-flash (AF) и гибридная (SSD/HDD) архитектура. На каждом серверном узле может быть от 1 до 5 дисковых групп, как минимум один кэширующий накопитель и до семи дисков постоянного хранения в каждой.

В VSAN AF оба уровня хранения реализованы на SSD. Cache - это буфер, через которых прогоняется вся запись, потому накопители под него ставят Write-intensive, High endurance. Слой Capacity набирают из менее дорогих, Read-intensive SSD. Соотношение объемов Cache/Capacity не должно быть ниже 1:10.

 

Хотя VSAN и дает определенную свободу в выборе «железа», имеет смысл оставаться в рамках списка гарантированно совместимого с VMware VSAN оборудования. Появление SSD на памяти 3D XPoint, а затем включение Intel Optane P4800X в список поддерживаемого оборудования VSAN AF, вызвало большой энтузиазм в сообществе VMware.  Со слоем кэширования на Optane ожидаемый прирост производительности в задачах с интенсивной записью составляет 2.5 раза против прежде эталонной серии Intel P3700 NVMe SSD.

Возможная структура дисковой группы узла VSAN AF (1 NVMe + 3 SSD):

Cache

1 x 750GB Intel Optane P4800X или 1 х 800GB U.2 SSD HGST Ultrastar SN200

Capacity

3 x 1.92TB SATA SSD SanDisk CloudSpeed Eco Gen. II (VM)

 

 

Intel Optane P4800X 750GB

HGST Ultrastar SN200 800GB

SanDisk CloudSpeed Eco Gen II 1.92TB

Interface

x4 PCIe

x4 PCIe

6Gb SATA

Flash type

3D XPoint

MLC NAND

MLC NAND

Sequential Read, MB/s

2,500

3,350

530

Sequential Write, MB/s

2,200

2,100

460

Random Read, IOPS

550,000

835,000

76,000

Random Write, IOPS

500,000

200,000

14,000

Mixed Random Read (70%)/Write (30%), IOPS

-

550,000

-

Latency

10 μs

20 μs

-

Endurance, DWPD

30

3

0.6

Таких дисковых групп в 1U можно организовать две.

 

Серверы VOD

Сети распространения контента (CDN) приближают выдачу данных к потребителю и становятся весомым драйвером развития локальных ЦОД. Особенно быстро растет спрос на цифровое видео, доставка которого коммерческими сетями составляет основную часть их дохода и съедает львиную долю общего сетевого трафика.

 

Медийной индустрии и ее спутникам CDN нужны надежные, предсказуемые, масштабируемые решения хранения и раздачи контента. Услуга просмотра видео (Video on Demand, VOD) не будет востребована, если непрерывной доставке данных в реальном времени будет мешать низкая скорость соединения, непредсказуемость качества из-за буферизации, зависимость от нагруженности источника.

 

Цифровое видео проигрывается с высоким битрейтом. Подборки видео хорошего качества съедают десятки и сотни терабайт дискового пространства HDD на стороне поставщика. На практике, серверы VoD обслуживают несколько потоков чтения одновременно. Даже если речь идет о множественных запросах к одному и тому же файлу с популярным видео, одновременное обращение к разным частям этого файла равносильно чтению случайного доступа (Random Read). В результате, многопоточное  чтение видео с высоким битрейтом требует от дисковой подсистемы серверов VOD большой отдачи по ширине потока и способности к быстрому переключению между областями контента.

 

Механические диски резко теряют пропускную способность с увеличением числа конкурентных потоков чтения, тогда как SSD сохраняют ее на высоком уровне при сотнях потоков. Появление флэш-памяти в раздатчиках видео закономерно, но высокая скорость чтения случайного доступа - не единственная критичная метрика. Взаимодействие между объемными библиотеками контента на HDD и фронтальными устройствами выдачи на SSD должно учитывать особенность спроса, профиль которого постоянно меняется, даже в течение суток. К примеру, утром смотрят новости и кулинарные шоу, днем – сериалы, вечером – развлекательные программы, спортивные трансляции и ситкомы. Соответственно, «горячее» ядро видеоданных постоянно перестраивается, а кэширующие флэш-носители должны быстро подкачивать файлы с основного слоя хранения на HDD.

 

Наилучшими кандидатами на роль Edge storage в задаче VOD будут емкие NVMe SSD, c их низкими задержками обращения, высочайшими показателями чтения случайного доступа и линейной записи. Например, такие:

Edge storage

2 x 7.68 U.2 SSD HGST Ultrastar SN200 или 2 х 8TB U.2 SSD Intel P4510

 

 

HGST Ultrastar SN200 7.68TB

Intel P4510 8TB

Interface

x4 PCIe

x4 PCIe

Flash type

MLC NAND

TLC NAND

Sequential Read, MB/s

3,350

3,200

Sequential Write, MB/s

2,160

3,000

Random Read, IOPS

835,000

637,000

Random Write, IOPS

205,000

139,000

Mixed Random Read (70%)/Write (30%), IOPS

550,000

-

Latency

20 μs

110 μs

Endurance, DWPD

3

1

 

Серверы-мутанты

Приведенные примеры показывают, как можно адаптировать типовые серверные платформы 1U под специфические задачи. Все описанные приложения достаточно требовательны к ресурсам процессоров и памяти. Тем не менее, лицо серверов определяет обустройство ввода-вывода: дисковой и сетевой подсистем. Требуемый cетевой адаптер ставится как карта расширения в стандартный слот PCIe или как мезонин OCP. Простор вариаций по дискам велик – благо платформы поддерживают сочетания U.2/SAS/SATA накопителей, в общей корзине, с горячей заменой.   

 

Казалось бы, какое дело конечному пользователю до того, стандартная его платформа или нет – лишь бы выполняла свою роль и помещалась в бюджет. В том-то и дело, что типовые платформы обходятся дешевле специфических и проще в обслуживании - все узлы стандартные. А еще их можно научить новым трюкам. Серверы живут дольше, чем держится мода. Кто знает, не понадобится ли через два-три года дать вторую жизнь старым вещам.