1 комментарий

alice2k


Используя AMD EPYC, мы смогли получить 64 физических ядра процессора, сохранив при этом высокие тактовые частоты: базовая частота 2,9 ГГц с ускорением 3,4 ГГц. Что еще более важно, EPYC предоставляет 128 линий PCIe v4.0, что позволяет разместить 24 диска NVMe на одной машине. NVMe невероятно быстр (примерно в 5,7 раза быстрее, чем твердотельные накопители SATA в наших серверах баз данных предыдущего поколения), потому что он использует PCIe вместо SATA. Однако линии PCIe обычно очень ограничены: современные потребительские чипы обычно имеют только 16 линий, а чипы Intel Xeon имеют 48. Обеспечивая 128 линий PCI на чип (v4.0, не меньше), AMD EPYC позволила упаковать большие количество накопителей NVMe на одной машине. Подробнее о NVMe мы поговорим позже.

Начнем с того, что посмотрим на среднее время обработки запроса, поскольку оно лучше всего отражает опыт подписчиков. Перед обновлением мы обработали медианный запрос API примерно за 90 мс. Обновление уменьшило этот показатель до ~ 9 мс!


Мы ясно видим, как наши старые процессоры достигли своего предела. За неделю до того, как мы обновили наш первичный сервер базы данных, его использование ЦП (из / proc / stat) в среднем составляло более 90%:


Новые процессоры AMD EPYC занимают около 25%. Вы можете увидеть на этом графике, где мы повысили новый сервер базы данных с реплики (только для чтения) до первичной (чтение / запись) 15 сентября.


Обновление значительно снизило общую задержку нашей базы данных. Среднее время ответа на запрос (из INFORMATION_SCHEMA) составляло ~ 0,45 мс.

Запросы теперь в среднем в три раза быстрее, примерно на 0,15 мс.


Накопители NVMe становятся все более популярными благодаря своей невероятной производительности. Однако до недавнего времени было почти невозможно собрать множество из них на одной машине, потому что NVMe использует линии PCIe. Они были очень ограничены: процессоры Intel Xeon имеют всего 48 линий PCIe v3, и некоторые из них используются набором микросхем и дополнительными картами, такими как сетевые адаптеры и графические процессоры. Вы не можете разместить много дисков NVMe на оставшихся полосах.

Последнее поколение процессоров AMD EPYC оснащено 128 линиями PCIe — более чем вдвое больше, чем предлагает Intel, — и это PCIe v4! Этого достаточно, чтобы упаковать сервер 2U с накопителями NVMe (в нашем случае — 24).

Если у вас есть сервер, полный дисков NVMe, вы должны решить, как ими управлять. В нашем предыдущем поколении серверов баз данных использовался аппаратный RAID в конфигурации RAID-10, но эффективного аппаратного RAID для NVMe не существует, поэтому нам понадобилось другое решение. Одним из вариантов был программный RAID (Linux mdraid), но мы получили несколько рекомендаций для OpenZFS и решили попробовать. Нам это очень понравилось!

Информации о том, как лучше всего настроить и оптимизировать OpenZFS для пула накопителей NVMe и рабочей нагрузки базы данных, было не так много, поэтому мы хотим поделиться тем, что узнали. Вы можете найти подробную информацию о нашей настройке в этом репозитории GitHub.

Сказать что-нибудь