Технология 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.
Автор: Oracle