Eu começaria lendo um artigo da Wikipedia sobre o assunto.
Em suma, escalabilidade é como o desempenho do sistema aumenta com a adição de mais recursos ou, alternativamente, como a utilização de recursos aumenta com o aumento da carga . Por exemplo, quantos usuários simultâneos o seu site pode gerenciar até que o tempo de resposta cresça além de 0,3 s? A mesma pergunta depois que você duplica a RAM / disco / CPU / etc disponível. Você provavelmente pode usar o seu conhecimento das aplicações internas para decidir quais parâmetros valem a pena verificar.
Configure uma bancada de testes com uma máquina servidor e uma ou mais máquinas clientes. Use alguma ferramenta para limitar a quantidade de recursos disponíveis para o servidor (por exemplo ulimit
) ou execute algum aplicativo interferente no servidor. Avalie como o servidor lida com solicitações do cliente. Repita o procedimento acima aumentando / diminuindo gradualmente a carga interferente / recursos disponíveis. No final, você obtém espaço n-dimensional com pontos. Pode ser mais simples alterar apenas um parâmetro de cada vez, enquanto fixa todos os outros em algum valor típico (ou alguns valores). Nesse caso, você pode representar o resultado como um monte de gráficos 2D com desempenho do servidor (por exemplo, número de usuários / solicitações) em um eixo e utilização / disponibilidade de recursos no outro.
Existem cenários mais complexos em que seu aplicativo usa vários servidores para várias partes do aplicativo e você pode variar sua quantidade e proporção, mas acho que não é o seu caso. No máximo, você provavelmente pode querer variar o número de threads / processos, se isso importa.
Se você medir todo o aplicativo, normalmente não precisa de acesso ao código-fonte. No entanto, você pode ser interessante na medição de alguma parte específica do código (por exemplo, apenas DB ou UI). Em seguida, você pode usar o código-fonte para expor apenas este módulo para medições e executar seus testes. Isso é chamado de marca de microbench .
Se você está procurando exemplos, há muitos deles em artigos acadêmicos. Pesquise no google scholar por avaliação de desempenho + seus termos preferidos.