Масштабируемость измеряется с точки зрения пропускной способности на основе некоторой переменной. Например, количество запросов / сек с X пользователями. Самый простой способ описать масштабируемость:
Мера эффективности при увеличении нагрузки.
Первое, что вам нужно понять при проектировании для масштабируемости, это то, какие измерения наиболее важны для вашего приложения? Существует несколько способов измерения эффективности, которые являются ключевым компонентом масштабируемости:
- Параллельные запросы в секунду
- Среднее время ответа на запрос
- Количество обработанных записей в секунду / минуту
Существует больше измерений эффективности, которые можно использовать, но они являются общими для веб-систем или систем пакетной обработки.
Следующим аспектом масштабируемости является измерение того, что происходит с вашей эффективностью при увеличении нагрузки. Распространенные способы увеличения нагрузки:
- Больше пользователей, попадающих на сервер (т.е. больше веб-трафика)
- Больше данных в базе данных (т.е. запросы занимают больше времени или обработка занимает больше времени)
- Сбой жесткого диска в RAID (производительность / надежность хранилища зависит)
- Насыщенность сети
Цель масштабируемого приложения - поддерживать или повышать эффективность при решении проблемы нагрузки. Короче говоря, если время отклика занимает слишком много времени, можем ли мы добавить еще один сервер для равномерного распределения нагрузки? Такой подход сокращает объем работы, выполняемой одним сервером, и позволяет серверам работать в этом «лучшем месте» для повышения эффективности.
Ваше приложение должно быть разработано специально для масштабирования. Это означает, что вы должны быть осторожны с данными сеанса, перенаправляя запросы на нужный сервер, уменьшая узкие места, которые ограничивают возможность масштабирования приложения.