Isso requer um pouco de vodu. Depende. Exemplo:
-
Se houver memória suficiente e os discos não parecerem muito ocupados, poderá estar limitado à CPU. Veja o uso da CPU e, se estiver perto de 100%, está ligado à CPU. Se não é, há um gargalo artificial na implementação. Por exemplo. em uma CPU dual-core, um único processo encadeado não ultrapassará 50% do uso da CPU.
-
Se a CPU e a memória estiverem disponíveis, mas os discos estiverem muito ocupados, ou a latência do IO parecer alta, é provável que seu IO esteja ligado. Veja se adicionar mais discos (RAID?) Ajuda.
-
Nenhuma das opções acima? Verifique a memória disponível.
-
Memória suficiente? Pode haver um gargalo artificial no próprio processo, ou seja, talvez alguém tenha esquecido de remover um sono (1)? Naah não é tão fácil normalmente. ;)
Existe uma razão pela qual temos um laboratório completo para engenheiros de desempenho na maioria das empresas que lidam com produtos sensíveis ao desempenho!
Use ferramentas como sar, vmstat, iostat, oprofile, lockstat, dtrace, ferramentas de monitoramento de desempenho específicas do produto, etc., para depurar problemas de desempenho.