Масштаби́руемость () — в электронике и информатике означает способность системы, сети или процесса справляться с увеличением рабочей нагрузки (увеличивать свою производительность) при добавлении ресурсов (обычно аппаратных).

Масштабируемость — важный аспект электронных систем, программных комплексов, систем баз данных, маршрутизаторов, сетей и т. п., если для них требуется возможность работать под большой нагрузкой. Система называется масштабируемой, если она способна увеличивать производительность пропорционально дополнительным ресурсам. Масштабируемость можно оценить через отношение прироста производительности системы к приросту используемых ресурсов. Чем ближе это отношение к единице, тем лучше. Также под масштабируемостью понимается возможность наращивания дополнительных ресурсов без структурных изменений центрального узла системы.Bondi, André B. (2000). Characteristics of Scalability and Their Impact on Performance. Proceedings of the 2nd International Workshop on Software and Performance. ACM. doi:10.1145/350391.350432

В системе с плохой масштабируемостью добавление ресурсов приводит лишь к незначительному повышению производительности, а с некоторого «порогового» момента добавление ресурсов не даёт никакого полезного эффекта.

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

Вертикальное масштабирование Вертикальное масштабирование — увеличение производительности каждого компонента системы с целью повышения общей производительности. Масштабируемость в этом контексте означает возможность заменять в существующей вычислительной системе компоненты более мощными и быстрыми по мере роста требований и развития технологий. Это самый простой способ масштабирования, так как не требует никаких изменений в прикладных программах, работающих на таких системах.Weinstock, Charles B.; Goodenough, John B. (2006). On System Scalability. Carnegie Mellon University, Software Engineering Institute. CMU/SEI-2006-TN-012

Горизонтальное масштабирование Горизонтальное масштабирование — разбиение системы на более мелкие структурные компоненты и разнесение их по отдельным физическим машинам (или их группам), и (или) увеличение количества серверов, параллельно выполняющих одну и ту же функцию. Масштабируемость в этом контексте означает возможность добавлять к системе новые узлы, серверы для увеличения общей производительности. Этот способ масштабирования может требовать внесения изменений в программы, чтобы программы могли в полной мере пользоваться возросшим количеством ресурсов.IBM Redbook: The RS/6000 SP Inside Out, id: SG24-5374-00, стр. 15

Показатели В контексте высокопроизводительных вычислений существует два показателя масштабируемости: сильная масштабируемость — показывает, как меняется время решения задачи с увеличением количества процессоров (или вычислительных узлов) при неизменном общем объёме задачи; слабая масштабируемость — показывает, как меняется время решения задачи с увеличением количества процессоров (узлов) при неизменном объёме задачи для одного процессора (или узла).Gustafson, John L. (1988). Reevaluating Amdahl's Law. Communications of the ACM, 31(5), 532–533

См. также

Вычислительная сложность Закон Густавсона — Барсиса Закон Амдала Балансировка нагрузки Масштаб Распараллеливание программ

Примечания

Ссылки Scalability! But at what COST? // ACM Queue, 2020.

Категория:Программирование