AMD EPYC як платформа сервера SQL

29.05.2023 | Сервери

 

Робочі навантаження серверiв баз даних

Два основних типу навантажень баз даних - Online Transaction Processing (OLTP) і Data Warehouse (DW).

OLTP – обробка транзакцій у реальному часі. З потоками звернень читання/запису довільного доступу найкраще справляються NVMe накопичувачі, як для областей даних, так і при запису в журнали транзакцій – завдяки мінімальному часу відгуку. Має значення однопотокова продуктивність CPU (продуктивність одного фізичного ядра). 

Сховища даних DW споживають ресурси CPU, пам’яті та вводу-виводу. Сервер SQL може виконувати операції запитів або індексів паралельно, використовуючи кілька робочих потоків ОС, що забезпечує швидкість і ефективність.

CPU

Для додатків, що працюють з базами даних, важливі максимально швидке обслуговування одного потоку запитів і здатність підтримувати множинні звернення. Це завдання ефективно вирішується процесорами з великою кількістю ядер та високою тактовою частотою, розширенням каналів доступу до оперативної пам'яті та пристроїв вводу/виводу, зниженням затримок на них.

Cистеми з одним процесорним сокетом краще підходять для програм, що залежать від затримок пам’яті. Два сокети можуть дати виграш додаткам, які залежать від пропускної здатності пам’яті. Варто відмітити, що процесори четвертих поколінь AMD EPYC та Intel Xeon Scalable (9004 «Genoa» і «Sapphire Rapids» відповідно) підтримують пам’ять DDR5 з подвоєною проти DDR4 пропускною здатністю. То ж 12 каналів пам’яті DDR5 одного AMD EPYC 9004 «Genoa» забезпечують ширшу смугу, ніж два процесори попереднього покоління, AMD EPYC 7003 «Milan» або Intel Xeon Scalable «Cooper Lake», з їх 8 каналами DDR4.

Однопотокова продуктивність процесора важлива тому, що більш високочастотний CPU виконає запити швидше, ніж повільніший. В додатках, що працюють в один потік, це особливо відчутно. Сервери SQL розроблені для обробки кількох паралельних з’єднань, але кожен запис у журналі транзакцій потрібно обробляти послідовно. Коротше кажучи, багато людей можуть бути підключені до сервера через кілька потоків, але в будь-який момент часу може відбутися лише одна транзакція. Чим більше тактова частота процесора в ГГц (кількість тактів, які він може виконати за секунду) та кількість інструкцій, що їх він виконує за такт (Instructions Per Clock, IPC), тим швидше виконання транзакцій.

Варто враховувати витрати на ліцензування. Microsoft Windows Server та Microsoft SQL Server ліцензуються з прив’язкою до кількості ядер. Висока тактова частота CPU краща за кількість ядер. Гленн Беррі,  експерт з SQL, в своїх рекомендаціях серверних процесорів завжди нагадує про вплив помилок проектування на загальну ціну володіння. Його незалежнi оцінки – як от заклик «Не використовуйте Cooper Lake для сервера SQL!» - продиктовані виключно практичними міркуваннями.

AMD EPYC

Сімейство AMD EPYC 9004 має до 96 ядер/192 потоків з дванадцятьма каналами пам’яті DDR5-4800 і 128 лініями PCIe 5. З’явилась підтримка набору iнструкцiй AVX-512, якi SQL Server 2022 може використовувати для обробки запитів Columnstore у пакетному режимі.

Продуктивність відчутно зросла в порівнянні з попередниками - сімейством 7003 «Milan»: IPC на 14%, підвищилась верхня межа базової та прискореної тактової частоти. Однопотокова продуктивність має додати 25-30% у більшості робочих навантажень. Ось деякі порівняння:

Процесори AMD EPYC 9004 розкладені по трьом кошикам: Core Performance, Core Density, Balanced and Optimized. «Продуктивні» позначено літерою «F», вони мають підвищену тактову частоту і тому рекомендовані для сервера SQL.

Гленн Беррі приводить оцінки показників тесту TPC-E обробки онлайнових транзакцій для F-процесорів, разом з вартістю ліцензій за калькулятором Microsoft SQL server 2022:

Оцінка TCP-E/ядро є показником однопотокової продуктивності процесора. Загальне правило для CPU сервера SQL: «менше ядер/вища частота».

В розлогому документi Microsoft SQL Server Tuning Guide for AMD EPYC 9004 Processors наведено рекомендації щодо вибору CPU разом із мінімальними вимогами до пам’яті для серверу SQL з онлайн-обробки транзакцій (OLTP):

Як бачимо, потрібну кількість процесорних ядер та об’єм пам’яті майже завжди здатен надати односокетний сервер – що спрощує та здешевлює серверну інфраструктуру.

NVMe

Робочі навантаження OLTP вимагають низьких затримок звернення до накопичувачів під тиском інтенсивних одночасних запитів. Це стосується всіх областей даних: основних і тимчасових таблиць, індексів і журналу транзакцій - через високу швидкість вставок та/або оновлення.

Оптимальними є NVMe накопичувачі. Давно не йдеться про використання в продуктивних серверах механічних дисків, в будь-якiй ролі - SSD швидші, легші, довговічніші та споживають менше енергії. Але SATA/SAS SSD поступаються NVMe SSD за всіма показниками, в довільному і послідовному доступі – при тому, що у SATA SSD вже немає цінової переваги.

Процесори AMD EPYC 9004 підтримують PCIe 5 із подвоєною проти PCIe 4 пропускною здатністю введення/виведення. Висока потокова швидкість не є визначальною характеристикою накопичувачів OLTP-сервера, але додає переваг в аналітиці, при обміні, резервуванні та відновленні даних.

Застосовуються всі звичайні правила налаштування I/O: використання RAID 1 або 10, рознесення журналу та даних по фізично різним носіям, зберігання холодних даних окремо, розподіл вводу/виводу між іншими контролерами на шині PCIe тощо.

Однопроцесорні сервери AMD EPYC

Односокетна стратегія AMD давно знайшла широку підтримку з боку основних виробників серверів (чого не скажеш про їхнє ж ставлення до подібних спроб Intel). Ресурсів одного процесора AMD EPYC достатньо для SQL-сервера більшості підприємств. Коли вимоги до зберігання не виходять за межі кількох десятків терабайт, всi дані варто розміщувати на  твердотільних носіях.

Dell PowerEdge R6615, HPE ProLiant DL325 Gen11, Lenovo ThinkSystem SR635 V3, ASUS RS500A-E12-RS12U, Gigabyte R163-Z32, Supermicro AS-1115CS-TNR, Tyan B80056G68AE12HR – ось неповний перелік лише 1U-серверів на одному AMD EPYC 9004. За підтримки від 16 до 96 процесорних ядер, до 3ТБ пам’яті, від 8 до 12 NVMe SSD односокетна 1U-платформа AMD EPYC – вiдносно недорога, але могутня зброя. Залишається прослідкувати при замовленні сервера, щоб його об’єднувальна плата підтримувала не тільки SATA, але й U.2 NVMe накопичувачі. Це дозволить витиснути максимум продуктивності в інтенсивних дискових операціях.