Масштабируемость

редактировать

Масштабируемость - это свойство системы справляться с растущим объемом работы за счет добавления ресурсов в систему.

В контексте экономики, масштабируемая бизнес-модель подразумевает, что компания может увеличить продажи при увеличении ресурсов. Например, система доставки пакетов является масштабируемой, потому что можно доставить больше пакетов, добавив больше средств доставки. Однако, если бы все пакеты сначала прошли через единый склад для сортировки, система не была бы масштабируемой, потому что одно хранилище может обрабатывать только ограниченное количество пакетов.

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

В математике под масштабируемостью в основном понимается замыкание при скалярном умножении.

Содержание
  • 1 Примеры
  • 2 Измерения
  • 3 Домена
  • 4 Горизонтальные (масштабирование) и вертикальное масштабирование (масштабирование)
    • 4.1 По горизонтали или по горизонтали
    • 4.2 По вертикали или по вертикали
  • 5 Масштабируемость базы данных
  • 6 Сильная или конечная согласованность (хранилище)
  • 7 Настройка производительности по сравнению с аппаратной масштабируемостью
  • 8 Слабое против сильного масштабирования
  • 9 См. Также
  • 10 Ссылки
  • 11 Внешние ссылки
Примеры

Система управления инцидентами (ICS) используется аварийное реагирование агентств в США. ICS может масштабировать координацию ресурсов от однодвигательного придорожного пожара до межгосударственного лесного пожара. Первый ресурс на сцене устанавливает командование с полномочиями распоряжаться ресурсами и делегировать ответственность (управление пятью-семью офицерами, которые снова будут делегировать до семи, и далее по мере роста инцидента). По мере развития инцидента командование принимает на себя более старшие офицеры.

Измерения

Масштабируемость можно измерить по нескольким параметрам, например:

  • Административная масштабируемость: возможность для растущего числа организаций или пользователей для доступа к системе.
  • Функциональная масштабируемость: возможность улучшения системы путем добавления новых функций без нарушения существующих действий.
  • Географическая масштабируемость: возможность поддерживать эффективность во время расширения из локальной области в более крупный регион.
  • Масштабируемость нагрузки: способность распределенной системы расширяться и сжиматься для размещения более тяжелых или более легких нагрузок, включая легкость, с которой система или компонент могут быть изменены, добавлены или удалены, чтобы приспособиться к изменяющимся нагрузкам.
  • Масштабируемость поколений: возможность масштабирования системы за счет принятия новых поколений компонентов.
  • Гетерогенная масштабируемость - это способность принимать компоненты из разных поставщики.
Домены
  • A цена маршрутизации Протокол считается масштабируемым по отношению к размеру сети, если размер необходимой таблицы маршрутизации на каждом узле увеличивается как O (log N), где N - количество узлы в сети. Некоторые ранние реализации peer-to-peer (P2P) Gnutella имели проблемы с масштабированием. Каждый запрос узла рассылает запросы всем узлам. Спрос на каждый одноранговый узел увеличивался пропорционально общему количеству одноранговых узлов, быстро превышая их возможности. Другие системы P2P, такие как BitTorrent, хорошо масштабируются, потому что спрос на каждый одноранговый узел не зависит от количества одноранговых узлов. Нет ничего централизованного, поэтому система может расширяться бесконечно без каких-либо ресурсов, кроме самих узлов.
  • Масштабируемая система онлайн-обработки транзакций или система управления базами данных - это система, которая могут быть обновлены для обработки большего количества транзакций путем добавления новых процессоров, устройств и хранилища, и которые могут быть обновлены легко и прозрачно, не выключая его.
  • Распределенный характер системы доменных имен позволяет он работает эффективно, обслуживая миллиарды хостов во всем мире Интернет.
Горизонтальное (масштабирование) и вертикальное масштабирование (масштабирование)

Ресурсы делятся на две большие категории: по горизонтали и по вертикали.

По горизонтали или по горизонтали

Горизонтальное масштабирование (уменьшение / уменьшение) означает добавление дополнительных узлов (или удаление узлов) в систему, например добавление нового компьютера в распределенную программное приложение. Примером может быть масштабирование с одного веб-сервера до трех. Высокопроизводительные вычислительные приложения, такие как сейсмический анализ и биотехнология, масштабируют рабочие нагрузки по горизонтали для поддержки задач, которые раньше требовали дорогостоящих суперкомпьютеров. Другие рабочие нагрузки, такие как крупные социальные сети, превышают возможности самого большого суперкомпьютера и могут обрабатываться только масштабируемыми системами. Для использования этой масштабируемости требуется программное обеспечение для эффективного управления и обслуживания ресурсов.

Вертикальное или вертикальное масштабирование

Вертикальное масштабирование (вверх / вниз) означает добавление ресурсов (или удаление ресурсов из) одного узла, как правило включая добавление ЦП, памяти или хранилища к одному компьютеру.

Большее количество элементов увеличивает сложность управления, более сложное программирование для распределения задач между ресурсами и решения таких проблем, как пропускная способность и задержка между узлами, в то время как некоторые приложения не масштабируются по горизонтали.

Виртуализация сетевых функций определяет эти термины по-разному: масштабирование / увеличение - это возможность масштабирования путем добавления / удаления экземпляров ресурсов (например, виртуальных машин), тогда как масштабирование вверх / вниз - это возможность масштабирования путем изменения выделенных ресурсов (например, памяти / ЦП / емкости хранилища).

Масштабируемость базы данных

Масштабируемость для баз данных требует, чтобы система базы данных могла выполнять дополнительную работу при больших аппаратные ресурсы, такие как дополнительные серверы, процессоры, память и хранилище. Рабочие нагрузки продолжали расти, и требования к базам данных последовали их примеру.

Алгоритмические инновации включают блокировку на уровне строк, а также секционирование таблиц и индексов. Архитектурные инновации включают архитектуры без общего доступа и с общим доступом для управления конфигурациями с несколькими серверами.

Сильная или конечная согласованность (хранилище)

В контексте горизонтально масштабируемого хранилища данных масштабируемость определяется как максимальный размер кластера хранилища, который гарантирует полную согласованность данных, Это означает, что существует только одна допустимая версия хранимых данных во всем кластере, независимо от количества избыточных физических копий данных. Кластеры, обеспечивающие «ленивую» избыточность за счет асинхронного обновления копий, называются «в конечном итоге согласованными». Этот тип горизонтально масштабируемого дизайна подходит, когда доступность и скорость отклика оцениваются выше, чем согласованность, что верно для многих веб-служб хостинга файлов или веб-кешей (если вам нужна последняя версия, подождите несколько секунд, чтобы она распространялась). Для всех классических приложений, ориентированных на транзакции, такой конструкции следует избегать.

Многие кластеры хранения с открытым исходным кодом и даже коммерческие горизонтально масштабируемые кластеры хранения, особенно построенные на основе стандартного оборудования и сетей ПК, обеспечивают только конечную согласованность. Идентифицируйте некоторые базы данных NoSQL, такие как CouchDB и другие, упомянутые выше. Операции записи делают другие копии недействительными, но часто не ждут их подтверждения. Операции чтения обычно не проверяют каждую избыточную копию перед ответом, что может привести к пропуску предыдущей операции записи. Большой объем сигнального трафика метаданных потребует специализированного оборудования и небольших расстояний, которые будут обрабатываться с приемлемой производительностью (т. Е. Действовать как некластеризованное запоминающее устройство или база данных).

Всякий раз, когда ожидается высокая согласованность данных, обратите внимание на следующие индикаторы:

  • использование InfiniBand, Fibrechannel или аналогичных сетей с малой задержкой, чтобы избежать снижения производительности при увеличении размера кластера и числа избыточных копий.
  • короткие длины кабеля и ограниченная физическая протяженность, позволяющие избежать снижения производительности во время выполнения сигнала.
  • механизмы большинства / кворума, гарантирующие согласованность данных всякий раз, когда части кластера становятся недоступными.

Индикаторы для согласованных в конечном итоге проектов (не подходит для транзакционных приложений!):

  • производительность записи увеличивается линейно с количеством подключенных устройств в кластере.
  • пока кластер хранения разделен, все части остаются отзывчивыми. Существует риск конфликтующих обновлений.
Настройка производительности в сравнении с масштабируемостью оборудования

Часто рекомендуется сосредоточить проектирование системы на масштабируемости оборудования, а не на емкости. Обычно дешевле добавить новый узел в систему для достижения улучшенной производительности, чем участвовать в настройке производительности для увеличения пропускной способности, которую может обрабатывать каждый узел. Но этот подход может иметь убывающую отдачу (как обсуждается в проектировании производительности ). Например: предположим, что 70% программы можно ускорить, если распараллелить ее и запустить на нескольких процессорах вместо одного. Если α {\ displaystyle \ alpha}\ alpha - это часть последовательного вычисления, а 1 - α {\ displaystyle 1- \ alpha}1- \ alpha - это части, которая может быть распараллелена, максимальное ускорение, которое может быть достигнуто при использовании процессоров P, задается в соответствии с законом Амдала :

1 α + 1 - α P. {\ displaystyle {\ frac {1} {\ alpha + {\ frac {1- \ alpha} {P}}}}.}{\ displaystyle {\ frac {1} {\ alpha + {\ frac {1- \ alpha} {P}}}}.}

Подстановка значения для этого примера с использованием 4 процессоров дает

1 0,3 + 1 - 0,3 4 = 2,105. {\ displaystyle {\ frac {1} {0,3 + {\ frac {1-0.3} {4}}}} = 2,105.}{\ displaystyle {\ frac {1} {0.3 + {\ frac {1-0.3} {4}}}} = 2,105.}

Удвоение вычислительной мощности до 8 процессоров дает

1 0,3 + 1 - 0,3 8 = 2,581. {\ displaystyle {\ frac {1} {0,3 + {\ frac {1-0.3} {8}}}} = 2,581.}{\ displaystyle {\ frac {1} { 0,3 + {\ frac {1-0.3} {8}}}} = 2,581.}

Удвоение вычислительной мощности ускорило процесс примерно на одну пятую. Если бы всю задачу можно было распараллелить, скорость также удвоилась бы. Следовательно, добавление большего количества оборудования не обязательно является оптимальным подходом.

Слабое против сильного масштабирования

Высокопроизводительные вычисления имеют два общих понятия масштабируемости:

  • Сильное масштабирование определяется как то, как время решения зависит от количества процессоров для фиксированного общего размера проблемы.
  • Слабое масштабирование определяется как изменение времени решения в зависимости от количества процессоров для фиксированного размера задачи на процессор.
См. Также
Ссылки
Внешние ссылки
Найдите масштабируемость в Wiktionary, бесплатном словаре.
Последняя правка сделана 2021-06-07 04:28:58
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте