Это 19-й день моего участия в августовском испытании обновлений.Подробности о событии:Испытание августовского обновления
Как следует классифицировать серверы с точки зрения системной архитектуры?
С точки зрения системной архитектуры современные коммерческие серверы можно условно разделить на три категории, а именно симметричные многопроцессорные системы (SMP) и неравномерный доступ к памяти (неоднородная память). Access, NUMA) и массовая параллельная обработка (MPP).
SMP(Symmetric Multi-processor)
Так называемая симметричная многопроцессорная структура означает, что несколько ЦП на сервере работают симметрично без первичных, вторичных или подчиненных отношений.
Каждый ЦП совместно использует одну и ту же физическую память, и время, необходимое каждому ЦП для доступа к любому адресу в памяти, одинаково, поэтому SMP также называется унифицированным доступом к памяти (UMA). Способы расширения SMP-сервера включают в себя добавление памяти, использование более быстрых ЦП, добавление большего количества ЦП, расширение ввода-вывода (количество слотов и шин) и добавление дополнительных внешних устройств (обычно дискового хранилища).
Основные функции SMP-сервера:общий, Все ресурсы в системе (такие как ЦП, память, ввод-вывод и т. д.) являются общими.
Также из-за этой особенности основная проблема SMP-сервера заключается в том, что егоОчень ограниченная масштабируемость.
Для SMP-сервера каждая общая ссылка может стать узким местом при расширении SMP-сервера, и самым ограниченным являетсяОЗУ.
Поскольку каждый ЦП должен получать доступ к одним и тем же ресурсам памяти через одну и ту же шину памяти, с увеличением числа ЦП конфликты доступа к памяти будут быстро увеличиваться, что приведет к растрате ресурсов ЦП и значительному снижению эффективности производительности ЦП.
Эксперименты показывают, что наилучший вариант использования ЦП SMP-сервера2~4 процессора.
NUMA(Non-Uniform Memory Access)
Из-за ограниченности возможностей SMP по расширению люди начали искать способы эффективного расширения технологии для создания крупномасштабных систем, и NUMA — один из результатов этих усилий.
Используя технологию NUMA, в сервере можно объединить десятки (даже сотни) процессоров. Структура модуля ЦП показана на рисунке.
Основные характеристики сервера NUMA:Имеет несколько модулей ЦП, Каждый модуль ЦП состоит из нескольких ЦП (например, 4) и имеет независимую локальную память, слоты ввода-вывода и т. д.
Поскольку его узлы могут быть подключены и обмениваться информацией через модули межсоединений (такие как Crossbar Switch), следовательно,Каждый ЦП может получить доступ ко всей памяти системы(Это важное различие между системами NUMA и системами MPP).
Очевидно, что скорость доступа к локальной памяти будет намного выше, чем скорость доступа к удаленной памяти (памяти других узлов в системе), что также является причиной неравномерного доступа к хранилищу в NUMA.
Благодаря этой особенности, чтобы лучше использовать производительность системы, необходимо свести к минимуму информационное взаимодействие между различными модулями ЦП при разработке приложений.
Используя технологию NUMA, проблема расширения исходной системы SMP может быть лучше решена, и один физический сервер может поддерживать сотни ЦП.
Однако технология NUMA также имеет определенные недостатки, связанные сЗадержка доступа к удаленной памяти намного больше, чем доступ к локальной памяти.,следовательно,Когда количество ЦП увеличивается, производительность системы не может увеличиваться линейно..
Например, когда Hewlett-Packard выпустила сервер Superdome, она объявила его относительную производительность по сравнению с другими Unix-серверами HP.Было обнаружено, что относительная производительность 64-процессорного сервера Superdome (структура NUMA) составляла 20, а 8-процессорного сервера Superdome. -способ N4000 (общий SMP) имел относительное значение производительности 20. структура) Относительное значение производительности составляет 6,3. Из этого результата видно, что 8-кратное увеличение количества процессоров означает только 3-кратное повышение производительности.
MPP (Massive Parallel Processing)
В отличие от NUMA, MAA предоставляет еще один способ расширения системы.Он состоит из нескольких SMP-серверов, подключенных через определенную сеть взаимосвязи узлов для совместной работы для выполнения одной и той же задачи.С точки зрения пользователя, это серверная система.
Его основные характеристикиОн состоит из нескольких SMP-серверов (каждый SMP-сервер называется узлом), соединенных через сеть межузловых соединений, и каждый узел имеет доступ только к своим локальным ресурсам (памяти, хранилищу и т. д.).
MPP представляет собой полностью разделяемую (без совместного использования) структуру, поэтому она имеет самую сильную масштабируемость и теоретически может бесконечно расширяться.Существующая технология может реализовать взаимосвязь 512 узлов, включая тысячи ЦП.
В настоящее время в отрасли нет стандарта для сети межузлового взаимодействия, и все они используют различные внутренние механизмы реализации. Однако сеть межузловых соединений используется только внутри MPP-сервера и прозрачна для пользователей.
В системе MPP каждый узел SMP также может работать со своей собственной операционной системой, базой данных и т. д. Но в отличие от NUMA у него нет проблемы удаленного доступа к памяти. Другими словами, центральный процессор каждого узла не может получить доступ к памяти другого узла. Обмен информацией между узлами осуществляется через сеть межузловых соединений Этот процесс обычно называют перераспределением данных ( Перераспределение данных).
Но серверу MPP нужен сложный механизм дляПланирование и балансировка нагрузки и параллельная обработка отдельных узлов.
В настоящее время некоторые серверы, основанные на технологии MPP, часто используют программное обеспечение системного уровня (например, базу данных), чтобы скрыть эту сложность.
Разница между NUMA и MPP
Архитектурно NUMA имеет много общего с MPP:
- Все они состоят из нескольких узлов;
- Каждый узел имеет свой собственный ЦП, память, ввод-вывод;
- Обмен информацией между узлами может осуществляться через механизм межузлового взаимодействия.
Так в чем же между ними разница?Нетрудно найти разницу, проанализировав внутреннюю архитектуру и принцип работы серверов NUMA и MPP.
Механизм соединения узлов другой.
- Механизм межузлового соединения NUMA реализован на одном физическом сервере. Когда процессору требуется доступ к памяти в разных местах, он должен ждать. Это основная причина, по которой серверы NUMA не могут обеспечить линейное увеличение производительности при увеличении нагрузки на ЦП.
- Механизм межузлового взаимодействия MPP реализуется через io вне разных SMP-серверов, каждый узел обращается только к локальной памяти и хранилищу, а обмен информацией между узлами осуществляется параллельно с обработкой самих узлов. Следовательно, производительность MPP может в основном достигать линейного расширения при добавлении узлов.
Механизм доступа к памяти другой.
- В NUMA-сервере любой ЦП может получить доступ к памяти всей системы, но производительность удаленного доступа к памяти намного ниже, чем при доступе к локальной памяти, поэтому при разработке приложений следует по возможности избегать удаленного доступа к памяти.
- На сервере MPP каждый узел имеет доступ только к локальной памяти, и нет проблем с удаленным доступом к памяти.