É claro que qualquer tarefa que você esteja usando é vinculada à CPU. Você pode querer considerar o perfil do seu aplicativo Django para descobrir onde seu aplicativo está atrasado. Existem várias soluções de criação de perfil para aplicativos Python WSGI (embora o Django não seja estritamente compatível com WSGI, especialmente com middleware, portanto, YMMV):
- bandeirinha (plug sem vergonha, esse é o meu projeto!)
- keas.profile
- repoze.profile
- dozer (mas você precisará usar o alpha de 0,2)
Isso permitirá que você identifique gargalos em seu aplicativo, ou seja, em quais funções seu aplicativo está gastando a maior parte do tempo?
Outra coisa a verificar é quanto tempo leva para o uwsgi / nginx atender a uma solicitação? As solicitações estão sendo enfileiradas? Quanto tempo a solicitação média leva do início ao fim? Além disso, mais importante, qual é a sua linha de base? Tente executar o mesmo teste com 1 usuário simultâneo para descobrir isso. Em seguida, aumente gradualmente o número de usuários até identificar onde o número de usuários atinge o pico.
Com esta informação, você pode começar a estabelecer um padrão - e essa é a chave para carregar o teste!
Boa sorte!