Я бы начал с чтения статьи на эту тему в Википедии .
Короче говоря, масштабируемость - это то, как производительность системы растет с добавлением большего количества ресурсов или, наоборот, как использование ресурсов растет с увеличением нагрузки . Например, сколько одновременных пользователей может обрабатывать ваш сайт, пока время отклика не превысит 0,3 с? Тот же вопрос после того, как вы удвоите доступную оперативную память / диск / процессор / и т.д. Вы, вероятно, можете использовать свои знания внутренних компонентов приложения, чтобы решить, какие параметры стоит проверить.
Настройте тестовый стенд с сервером и одним или несколькими клиентскими компьютерами. Используйте какой-либо инструмент, чтобы ограничить количество ресурсов, доступных серверу (например ulimit
), или запустите какое-либо мешающее приложение на сервере. Измерьте, как сервер обрабатывает запросы клиентов. Повторите вышеупомянутое постепенно увеличивая / уменьшая мешающую нагрузку / доступные ресурсы. В конце вы получите n-мерное пространство с точками в нем. Может быть проще изменять только один параметр за раз, фиксируя все остальные значения на некотором типичном значении (или паре значений). В этом случае вы можете представить результат в виде набора двухмерных графиков с производительностью сервера (например, количеством пользователей / запросов) на одной оси и использованием / доступностью ресурсов на другой.
Существуют более сложные сценарии, в которых ваше приложение использует несколько серверов для нескольких частей приложения, и вы можете изменять их количество и соотношение, но я думаю, что это не ваш случай. Самое большее, вы, возможно, захотите изменить количество потоков / процессов, если это имеет значение.
Если вы измеряете все приложение, вам обычно не нужен доступ к исходному коду. Тем не менее, вам может быть интересно измерить какую-то конкретную часть кода (например, только DB или UI). Затем вы можете использовать исходный код, чтобы выставить только этот модуль для измерений и запустить свои тесты. Это называется микробенчмарк .
Если вы ищете примеры, их много в научных статьях. Поиск в Google ученый для оценки эффективности + ваши предпочтительные условия.