logo
Учебник ИСПиУ

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

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

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

Возможность масштабирования системы определяется не только архитектурой аппаратных средств, но и свойствами используемого ПО. Масштабируемость ПО затрагивает все его уровни – от простых механизмов передачи сообщений до работы с такими сложными объектами, как мониторы транзакций и вся среда прикладной системы. Необходимо, чтобы ПО минимизировало трафик межпроцессорного обмена, который может препятствовать линейному росту производительности системы. Аппаратные средства (процессоры, шины и устройства ввода-вывода) – это только часть масштабируемой архитектуры, на которой ПО может обеспечить предсказуемый рост производительности. Важно понимать, что простой переход, например, на более мощный процессор может привести к перегрузке других компонентов системы. Это означает, что действительно масштабируемая система должна быть сбалансирована по всем параметрам.