Esse tópico tratava principalmente de várias consultas N+1 que tínhamos naquela rota, todas as quais já foram corrigidas.
A página do perfil de fato possui algumas consultas pesadas, pois gera um resumo muito personalizado e completo do usuário, mas um banco de dados de tamanho razoável deveria ser capaz de renderizá-la em menos de 500 ms.
Isso é um banco de dados grande para uma VM pequena. Você está executando tudo na mesma VM (Web+DB+Redis)?
Você está usando a versão mais recente do PostgreSQL 13? Pode tentar executar as tarefas de desempenho opcionais descritas em Atualização do PostgreSQL 13, tanto o vacuum quanto o reindex?