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

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

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

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

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