Анализ производительности сервера Oracle SPARC T7-2
Помимо уникальных физических характеристик на процессоре M7 заявлена возможность переноса части SQL-логики базы данных Oracle на специальные сопроцессоры DAX (технология “SQL in Silicon”). Таким образом, процессор M7 позиционируется как первый процессор в истории ИТ, оптимизированный под задачи Oracle Database.
В таблице 1 приведены основные характеристики процессора M7 в сравнении с процессором T5 (предыдущее поколение SPARC). В новом процессоре при частоте 4,13 гГц 32 ядра и до 256 потоков.
Табл. 1. Основные характеристики процессора M7 в сравнении с процессором T5
Характеристика процессора
T5
M7
Максимальное количество потоков
Авторы
Другие статьи автора
Статьи по теме
Поделиться
В начале 2016 года стало возможно тестирование серверов T-серии – наша компания одной из первых в России организовала такое тестирование в феврале-марте 2016 года. В тестировании были задействованы 2 сервера T7-2 (один из них – на территории заказчика) со следующими ресурсами:
- два процессора SPARC M7 (всего 64 ядра и до 512 потоков);
- до 1 Тб оперативной памяти;
- Solaris 11.3 в контрольном домене, различные версии Solaris в гостевых доменах, различные версии Oracle.
Тестирование было организовано в нескольких этапов:
- анализ производительности сервера T7-2;
- исследование новых возможностей виртуализации;
- использование Oracle In-Memory и изучение технологии SQL in Silicon.
Стоит отметить, что целый класс программного обеспечения разрабатывается с целью организовать синтетическое тестирование Hardware, в том числе под характерной нагрузкой со стороны базы данных. Тем не менее выбор средства тестирования является нетривиальной задачей – а зачастую именно этот выбор определяет результаты тестов и дальнейшие выводы.
При тестировании новых процессоров M7 от Oracle мы ставили перед собой задачу исследовать поведение сервера под нагрузками, близкими к максимальным. Для этого нам было необходимо свести к минимуму влияние на результаты тестов как системы ввода-вывода, так и внутренних механизмов базы данных (в данном случае Oracle Database).
Для решения этой задачи нами было значительно доработано ПО с открытым кодом – так чтобы фиксировать максимальные значения показателя Logical Reads Per Second (логическое чтение или чтение из памяти) экземпляра Oracle. Интенсивность логических чтений из памяти является важной характеристикой нового процессора, а само чтение данных из памяти является неотъемлемой частью функционирования Oracle Database.
На рис. 1 приведены сравнительные результаты, полученные на серверах T5-4 (предыдущее поколение серверов Oracle) и T7-2 (новые процессоры SPARC M7). Результаты зафиксированы в одинаковых по процессорной мощности доменах (32 ядра) при одинаковых настройках экземпляра Oracle и очень близких профилях нагрузки. На этом и последующих графиках по оси X отложено количество параллельных сессий, по оси Y – максимальное количество логических чтений в секунду согласно статистике AWR.
При одинаковом числе ядер домен сервера T7 оказался в 1,15–1,2 раза производительнее домена сервера T5. Это означает что новый процессор M7 (в котором ядер вдвое больше, чем в T5) в 2,3–2,4 раза производительнее процессоров предыдущего поколения от Oracle. Заметим, что этот результат зафиксирован на сервере T7 как в контрольном (control), так и в гостевом (guest) домене. При этом на большом количестве сессий (192 и более) в гостевом домене сервера T7 заметно влияние виртуализации: производительность оказывается на 3–5% ниже, чем в контрольном домене при тех же ресурсах.
Рисунок 1. Результаты в доменах 32 ядра (T5 vs T7)
Максимальное значение показателя Logical Reads Per Second было получено, когда контрольному домену было отдано 64 ядра (всего 512 потоков). В этом случае практически все ресурсы сервера T7-2 (ядра и память) были отданы экземпляру Oracle, и он показал 93,587,823 логических чтений в секунду. За все время тестирования серверов различной архитектуры под нагрузкой Oracle Database мы впервые зафиксировали такие высокие показатели.
Параллельно тестированию сервера T7-2 по той же методике были протестированы актуальные серверы архитектуры IBM Power и x86. На рис. 2 приведены сравнительные результаты, полученные в гостевых доменах серверов T5-4, T7-2, Power8 и E5-2660 (x86). В тестируемые домены было отдано по 16 ядер (следует отметить, что в архитектуре x86 на ядро приходится по 2 потока, при том что у SPARC и Power по 8 потоков). Максимальный результат, полученный в гостевом домене T7-2, – около 24 миллионов логических чтений в секунду – оказался лучшим. При этом на малых количествах сессий наиболее производительно показала себя архитектура x86.
Рисунок 2. Сравнительные результаты в доменах 16 ядер (T5/T7/P8/x86)
Также следует отметить, что в ходе тестирования динамического перераспределения ресурсов на сервере T7-2 была обнаружена проблема так называемых «медленных тредов». Она проявляется в том, что некоторые потоки начинают работать в несколько раз медленнее при достаточно интенсивных изменениях ресурсов домена. По этой проблеме в службе поддержки Oracle был заведен Service Request с максимальным приоритетом, мы получили ответ: медленные потоки связаны с работой Power Management, который рекомендуется отключать. В ходе тестирования мы проверили этот Workaround, действительно, при отключении Power Management проблема «медленных тредов» не проявляется.
Таким образом, анализ производительности сервера T7-2 под характерной нагрузкой Oracle Database показал:
-
В сравнении с T5 (процессор SPARC предыдущего поколения) производительность ядра M7 оказалась выше в 1,15–1,2 раза, а производительность всего процессора (в котором ядер вдвое больше) – в 2,3–2,4 раза соответственно. Это позволяет говорить о том, что при консолидации баз данных Oracle сервер T7-2 способен заменить более двух серверов T5-2.