Технология SPARC принадлежит Oracle уже пять лет. За это время корпорация Oracle выпустила микропроцессоры SPARC T3, SPARC T4, SPARC T5, SPARC M5 и SPARC M6 (Рис. 1), каждый из которых был важным шагом на пути эволюции технологий — причем системы SPARC Т3 и Т4 разрабатывались еще компанией Sun Microsystems, и последующие процессоры многое унаследовали от них.



Что же касается SPARC М7, то это первый процессор, который полностью, начиная с идеологии и базового дизайна, разрабатывался Oracle и для Oracle. Основной целью проекта разработки было обеспечить максимальную эффективность работы ПО Oracle — и в результате был создан первый в индустрии 32-ядерный процессор с беспрецедентными нагрузочной способностью, производительностью ядра, возможностями быстрого шифрования и аппаратной декомпрессии.

Если сравнить параметры микропроцессора SPARC M7 с параметрами самого совершенного выпущенного ранее процессора SPARC T5, обнаружится, что многие параметры увеличились в два раза, а некоторые — в четыре (Табл. 1). У процессора SPARC M7 32 ядра общего назначения, т. е. вдвое больше, чем у процессора Т5. Также у процессора SPARC M7 вдвое больше вычислительных потоков и вчетверо больше кэша на каждое ядро, а новая архитектура существенно повысила производительность каждого ядра. Новые контроллеры памяти позволили увеличить пропускную способность памяти и скорость доступа к памяти, а пропускная способность ввода-вывода выросла в четыре раза. Выросла и тактовая частота процессора. В целом процессор SPARC M7 работает примерно в три раза быстрее, чем процессор SPARC Т5.

Таблица 1
SPARC T5
SPARC M7
Повышение
Число ядер
16
32
2x
Число потоков
128
256
2x
Объем кэш-памяти на ядро
0,5 МБ
2 МБ
4x
Пропускная способность памяти
79 ГБ/с
160 ГБ/с
2x
Скорость доступа к памяти
163 нс
131 нс
20%
Пропускная способность ввода-вывода
32 ГБ/с
145 ГБ/с
4x
Частота
3,60 ГГц
4,13 ГГц
15%


Но исторический революционный шаг, сделанный Oracle новым процессором, — это реализация программных функций непосредственно на кристалле. Это безопасность на кристалле, т. е. ускорение шифрования и аппаратная защита памяти, и, что еще важнее, — SQL на кристалле, т. е. первая в мире аппаратная реализация ускорения обработки SQL-запросов и декомпрессии для Oracle Database In-Memory.

Безопасность на кристалле


Казалось бы, и так понятно, почему безопасность так важна, но мы кое-что поясним. Количество похищенных строк данных в мире за 2014 год, согласно отчету CSO Online Market Pulse, составило сотни миллионов, а понесенные бизнесом потери измеряются миллионами и миллионами долларов. Но, к сожалению, в системе корпоративной безопасности защита баз данных фактически является сейчас самым слабым местом. Более 50 % компаний считают, что самые важные и самые ценные данные хранятся у них в базах данных, но при этом большинство компаний инвестируют в первую очередь в защиту сети, а на защиту баз данных предпочитают тратить как можно меньше средств. В результате 76 % всех успешных атак на корпоративные данные не были остановлены именно средствами сетевой безопасности.

Существует три основных вида угроз безопасности:
  • Уязвимости базы данных как физического носителя
  • Уязвимости операционной системы, приводящие к проникновению и получению несанкционированного доступа к данным
  • Ошибки доступа к памяти

Технологии СУБД Oracle решают проблемы уязвимости баз данных благодаря функциям встроенного шифрования. В свою очередь, операционная система Oracle Solaris имеет ряд функций, которые позволяют минимизировать возможность и потенциальный урон от несанкционированного использования административных прав привилегированных пользователей. И, наконец, функциональность Oracle Application Data Integrity, которая позволяет находить самые труднообнаруживаемые ошибки доступа к памяти в больших, сложных программах, а также предотвращать несанкционированное проникновение на системы, теперь встроена в процессор и называется Security in Silicon.

Шифрование — крайне трудоемкий и затратный с точки зрения производительности процесс. За безопасность всегда приходилось платить производительностью, и только выпуск SPARC М7 позволяет решить эту проблему, поскольку данный процессор обладает уникальной функциональностью, позволяющей обеспечить прозрачное шифрование данных с использованием 15 наиболее известных алгоритмов шифрования: в каждое ядро процессора встроен специализированный математический блок обработки инструкций шифрования, который обеспечивает скорость шифрования, практически равную скорости работы основного ядра и скорости работы с памятью (Рис. 2). Поскольку все алгоритмы обрабатываются непосредственно в процессоре, падение производительности при этом составляет менее 3 %.



По результатам сравнительного тестирования производительности системы из двух однопроцессорных серверов на базе SPARC M7, работающих в защищенном режиме, и системы из двух 4-процессорных серверов производства ближайшего конкурента, работающих в незашифрованном режиме, система на базе SPARC M7 показала производительность 25 093,06 EjOPS, а соперник — только 22 543,34 EjOPS. Это означает также, что в пересчете на один процессор SPARC M7 системы, работающие в защищенном режиме, оказываются примерно в 4,5 раза быстрее, чем ближайшие конкуренты, работающие в незащищенном режиме.

Системы на базе SPARC M7 предлагают также аппаратную поддержку безопасной миграции доменов, которой попросту нет ни у одного из конкурентов. В процессе миграции виртуальная машина с критичными данными передается через сеть, и образ виртуальной машины шифруется для передачи. При этом данные защищены во время передачи сложным алгоритмом шифрования. Таким образом обеспечивается защита передаваемых данных с минимальным влиянием на производительность мигрирующей виртуальной машины во время переноса.

Наконец, исключительно важно обеспечить безопасность прямого доступа к памяти. Большинство вирусов для систем RISC/UNIX пытаются напрямую адресовать память за рамками отведенных им буферов, и используют для этого либо механизмы переполнения стека, либо механизмы переполнения буфера. Система SPARC M7 впервые в истории имеет аппаратную защиту памяти и позволяет предотвращать несанкционированный доступ к памяти на уровне аппаратных процессорных ресурсов. Эта функция предотвращает доступ вредоносных программ и к памяти приложений, и к каким-либо функциям операционной системы, при этом она не влияет на производительность и ее невозможно обойти. В результате мы не только получаем более безопасные системы, но и более эффективные системы с точки зрения разработки.

На самом деле виртуальные адреса, с которыми работают процессоры М7, не ограничены 64 разрядами. Когда под приложение выделяется область памяти, четыре бита сверх стандартных 64 используются как цветовая метка, которая присваивается этой области памяти и передается вместе с указателем на эту область. Это позволяет избежать возможности доступа к областям памяти за пределы выделенного массива. Данный механизм имеет достаточно тонкую защиту на уровне страниц памяти, размером 64 байта. Поскольку метки являются аппаратными, добавляются процессором и передаются непосредственно с указателем в программу, они недоступны никаким программным средствам и нейтрализуют любые, даже еще не созданные, вирусы, которые используют механизмы переполнения стека и буферов.

Надо сказать, что операционная система Oracle Solaris 11.3 поддерживает всю вышеописанную функциональность. Кроме того, Solaris имеет еще ряд функций, которые позволяют обеспечить дополнительный уровень безопасности. Например, в Solaris 11.3 существует механизм зон, доступных только для чтения, и, единожды создав эту зону, вы можете быть уверены, что никакие ее параметры никогда и никем не смогут быть изменены. Кроме того, в Solaris существует специальный автоматизированный механизм обновления операционной системы, который создает полностью сертифицированный стек всех обновлений и при этом обеспечивает очень быстрый обратный откат на последнюю работающую версию в случае сбоя. Система также может автоматически создавать отчеты о соответствии системы требованиям безопасности и передавать их на независимый внешний сервер. Наконец, механизмы контроля доступа операционной системы Solaris позволяют контролировать права администраторов — как на уровне их функций, так и по времени — и содержат очень мощный механизм управления правами, который позволяет минимизировать ущерб даже в случае зловредных действий администратора.

SQL на кристалле


Прежде чем обсуждать функциональность SQL in Silicon — обработку запросов к базе данных, реализованную непосредственно на процессоре, — нужно вспомнить о функциональности In-Memory, реализованной еще в версии Oracle Database 12.1 путем создания выделенной области в оперативной памяти, в которой информация из таблиц хранится, в отличие от традиционного построчного представления, в колоночном формате. Уже выпуск 12.1 обеспечивал исключительно быстрое построение отчетов и аналитики, а в выпуске 12.2 эти операции ускорены в 3–10 раз. В версии 12.1 производится сканирование и объединение данных из нескольких таблиц, что на колоночном представлении гораздо эффективнее, чем обычные joins, а в версии 12.2 реализованы еще более быстрые joins на уровне словаря, а не данных.

В процессоре SPARC М7 имеются специализированные ускорители SQL-инструкций, которые работают независимо, в синхронном и асинхронном режиме. И если с переходом на In-Memory скорость обработки инструкций составила миллионы строк в секунду, то с использованием специализированных ускорителей в процессоре М7 она достигла миллиардов строк в секунду. Максимальный результат, достигнутый на внутренних тестах Oracle, составил 170 млрд строк в секунду на процессорах SPARC M7 с использованием механизма In-Memory и встроенных сопроцессоров. Встроенные сопроцессоры не только повышают скорость обработки SQL-запросов, но и освобождают процессорные ядра общего назначения для работы других приложений — OLTP-запросов и пр.

В результате аналитика на SPARC M7 работает более чем в восемь раз быстрее, чем на системной архитектуре х86 платформы. OLTP работает примерно в три раза быстрее. Это значит, что там, где раньше требовалось пять двухпроцессорных серверов для обработки OLTP и аналитики, теперь можно обойтись одним однопроцессорным сервером на базе SPARC M7, который будет одновременно обрабатывать и OLTP-, и аналитические запросы. Экономия на оборудовании, лицензиях, площадях, электроэнергии и рабочем времени ИТ-администраторов гарантирована.

Чем сложнее запрос, чем больше объем данных, с которыми приходится работать системам на базе процессора SPARC M7, тем явственнее повышение производительности. Один из крупных заказчиков Oracle, который занимается онлайн-торговлей, при тестировании сервера SPARC Т7-4 на базе процессоров SPARC М7 c Oracle Database 12.1.0.2 и опцией In-Memory получил повышение скорости обработки запросов в 83 раза. И это не единичный пример. Системы на базе SRARC M7 уже тестировали Accenture PLC, DZ Bank AG, HPCVL, Infosys Limited, MSC Software Corporation, SAS, Siemens AG, Software AG, Temenos, UZ Leuven и ряд других компаний, включая некоторые российские. Все они подтвердили, что эффективность работы системы SPARC M7 достаточно высока и что все приложения этих компаний продолжают работать на системах SPARC М7 с достаточно большим уровнем эффективности.



Еще раз подчеркнем, что Oracle продолжает развивать архитектуру SPARC, вкладывая в нее гораздо больше ресурсов, чем в прежние времена Sun Microsystems. При этом Oracle развивает SPARC как платформу, которая обеспечивает в первую очередь максимальный уровень производительности. И, наконец, хотя Oracle оптимизирует архитектуру SPARC для ПО Oracle и вы никогда не сможете найти систему, которая бы работала с продуктами Oracle лучше, чем системы на базе процессоров SPARC, продукты от сторонних поставщиков ПО также достаточно хорошо и эффективно работают на платформе SPARC — что и было доказано бета-тестированием в ряде международных и российских корпораций, а также на примерах партнеров Oracle, которые работают с системами SPARC.

Комментарии (23)


  1. UnS
    27.03.2016 01:39

    Злая печаль после прочтения, как впрочем, зачастую после чтения "чисто" маркетинговых материалов.
    У меня лично возникли следующие вопросы:
    серия Т — будет ли развиваться? (раньше "ходили слухи", что линейка Т "плавно перейдет в М серию")
    Зачем вообще сравнивать разные линейки процессоров, притом разных поколений?
    То что выигрыш, так сказать "на лицо" — это понятно, но автор забыл упомянуть следующее — у серий Т и М изначально были разные рынки.
    Какие результаты сравнения между M6 и М7?
    P.S. Cпасибо за анонс, буду ждать сторонних тестов на реальных задачах :)


    1. Yaroslav_ef
      29.03.2016 20:03

      UnS ПРОЦЕССОРЫ серии T будут плавно мигрированы в другую линейку. Ждите анонсов. СЕРВЕРЫ серии T будут выпускаться и далее, но будут строиться на процессорах серии М. М7 примерно втрое (2.6 — 4.5 раз на разных задачах) превосходит по производительности М6 сокет-в-сокет


  1. dizh
    28.03.2016 18:29

    Итак, посмотрим, что у Oracle получилось.
    global.sap.com/solutions/benchmark/sd2tier.epx?num=200
    Sparc T7-2, два процессора, 64 ядра, терабайт памяти — 168600 SAPS.
    «Ближайший конкурент» — IBM Power s824, два процессора (хотя Ораклы упорно называют этот сервер четырехпроцессорным, т.к. его «процессор» является «склейкой» двух чипов в одном сокете), 24 ядра, 512 Гб памяти — 115870 SAPS.
    SAPS на ядро Power8 — 4827.916666666667
    SAPS на ядро Oracle M7 — 2634.375
    Почему сравнение делаю на ядро, а не на процессор\сокет\сервер? Потому, что СУБД Oracle лицензируется именно по ядрам, а не по процессорам. SE редакцию, которая лицензировалась по процессорам Oracle недавно убил. На новой SE2 приличную нагрузку не запустить, из-за адских технических ограничений.
    Лицензинонный коэффициент Oracle T7-0.5, Power — 1. www.oracle.com/us/corporate/contracts/processor-core-factor-table-070634.pdf
    В сухом остатке — благодаря двукратному ценовому преимуществу в лицензионном коэффициенте и двукратному перевесу в оперативной памяти в протестированной SAP конфигурации новый чудо-инновационный процессор со встроенным SQL сумел-таки опередить универсальный IBM Power трехлетней давности по финансовой эффективности :) аж на 9%.
    Не поймите меня неправильно, 9% в типовых проектах Oracle это громадные с точки зрения простого смертного деньги, но с другой стороны — разница в 9% — это результат, который может легко меняться в ту или иную сторону в зависимости от нюансов аппаратной конфигурации (память, дисковая система, количество виртуальных машин-партиций и т.п.) и особенностей самой рабочей нагрузки. Соответственно, выбирать процессор, точнее систему, надо только после проведения тестирования на реальной системе заказчика.
    С другой стороны в реальных сделках Oracle будет всячески… мотивировать на приобретение именно своего железа, давая более глубокие скидки на софт в связке с собственными серверами.
    Такие дела.