Meus 2 cents,
Olha, centenas de requisicoes e 450k registros nao deveriam causar todo este problema (um SQLite em maquina local daria conta sem maiores dificuldades).
O que voce precisa olhar:
- Qual a requisicao / endpoint que causa mais problemas ? Ou seja, o acesso ao recurso/pagina/etc X eh o problematico.
Ai voce pega este endpoint, tira os acessos a banco e testa novamente - e ve se normalizou. Sim, repoe o acesso a 1 tabela. Testa. Tudo OK, vai para a proxima tabela e assim sucessivamente ate achar o ponto exato que causa o stress.
Achou ? Analise se pode ser uma questao de falta de indice, SQL (peca para mostrar e fazer o explain do SQL gerado - full search eh ruim)
Existem formas mais limpas de fazer isso - mas assim de bate pronto e sem recorrer a ferramentas especificas de analise, eh um caminho.