Não tenho certeza se nossas situações estão relacionadas, Mark. Acho que no meu caso, o que Stephen disse teve um grande papel:
Recentemente, movi outras duas instâncias para o mesmo servidor e, na verdade, tinha esquecido que os workers do unicorn estavam definidos como 8 porque anteriormente estávamos em um servidor com mais núcleos (mas ele tinha seus próprios problemas, por isso voltamos para um Xeon que tinha menos núcleos, mas tinha um desempenho melhor no geral).
Então, o que descobri foi que reduzir os workers do unicorn neste servidor reduziu a carga, mas começou a nos dar timeouts; aumentá-los erradicou os timeouts, mas resultou em uma carga maior - embora ainda dentro de uma faixa aceitável. Acho que poderia aumentar os workers e ainda poderíamos lidar com a carga aumentada, mas o que temos agora é bom por enquanto.
Dito isso, movi as instâncias para o mesmo servidor e ele estava funcionando dentro do que eu esperava (então a carga aumentou, mas não muito) e parecia que uma atualização resultou em cargas mais altas… no entanto, não posso ter certeza disso, e temos que ter em mente que, de tempos em tempos, com o Discourse ganhando mais recursos, ele pode exigir hardware mais poderoso ou resultar em, às vezes, parecer ‘mais lento’ (tive algumas instâncias do Discourse em versões antigas e elas pareciam notavelmente mais rápidas - embora, é claro, elas não tivessem todos os recursos das versões mais novas).
Dito isso também, acho que as cargas diminuíram um pouco desde a última atualização do Discourse (com PG 15).
Não tenho certeza do que sugerir para você, Mark - talvez brincar com os workers e algumas outras configurações também? Como db_shared_buffers e db_work_mem? Talvez iniciar um tópico dedicado do tipo “Uso alto de CPU após atualização - minha instância precisa de ajustes de desempenho?” Ou algo assim 