Minha instalação do Discourse tem ficado cada vez mais lenta nas últimas semanas. No passado, quando isso acontecia, reconstruir o aplicativo ajudava. No entanto, agora não parece ajudar.
Procurei por conselhos neste fórum e tentei algumas otimizações de banco de dados (vacuum full verbose, rebuild index, vacuum analyze verbose).
No entanto, nada disso parece ajudar, e quando inicio o contêiner, leva muito, muito tempo antes que eu possa realmente me conectar ao fórum.
Se isso continuar, o fórum eventualmente se tornará completamente inutilizável. Alguma ideia de onde começar a procurar?
A saída do vmstat está nos dizendo que - como as coisas estão - não há RAM suficiente.
Pode ser que o Discourse esteja funcionando como deveria, e tudo esteja como deveria estar, mas que seus dados cresceram a ponto de 4G de RAM não serem suficientes.
Ou pode ser que algo deu errado e muita RAM está em uso, o que não deveria estar em uso.
Uma medida de tamanho é fazer um backup-sem-anexos e ver o quão grande ele é.
Pode ser que o mini-profiler dê uma pista sobre quais ações do banco de dados estão demorando tanto.
Se você tiver orçamento para dobrar a RAM, faça isso. (Se você tomar cuidado para aumentar a RAM, mas deixar o armazenamento como está, se você tiver essa opção do seu provedor, então esta pode ser uma mudança reversível e até mesmo temporária.)
Se você não pode pagar por mais RAM, pode tentar definir valores mais baixos para db_shared_buffers (digamos 128MB ou menos) e limitar UNICORN_WORKERS a apenas 2 enquanto isso, pois você precisa parar o swapping o mais rápido possível.
Mais RAM é bastante caro do meu provedor de hospedagem, então explorarei outras opções primeiro. (E estou preocupado que mudá-la quebre meu preço garantido…)
Mudei db_shared_buffers para 128Mb e UNICORN_WORKERS para 2.
O comando launcher app stop / start é suficiente para que essas configurações entrem em vigor?
Com um Alt+P no seu teclado, as ações subsequentes no fórum devem exibir uma string de tempo logo abaixo do banner do fórum (para mim, à direita) e, se você clicar no tempo, verá uma janela pop-up com algumas estatísticas.
Isso é mais ou menos o mesmo que o meu, rodando com 1G de RAM. Tenho 2 mil tópicos, 15 mil posts, mais de 500 cadastros.
Qual é o histórico do seu Discourse? Lembro vagamente de um tempo no passado em que se devia criar um índice para alguma tabela por motivos de desempenho.
E quanto aos plugins? Você pode executar ações em modo de segurança para ver se elas rodam mais rápido?
Existe um lugar fácil para encontrar essas estatísticas?
A maioria das estatísticas que vejo me mostra o que aconteceu no último dia ou semana, mas sem totais.
Não tenho certeza do que você quer dizer com histórico. Mas comecei em março de 2021.
A primeira impressão é que o modo de segurança não é mais rápido. Vou brincar com ele e com o mini-profiler para ver se essa impressão se mantém.
Parece que sua máquina não foi reiniciada por mais de um ano - provavelmente vale a pena fazer isso e atualizar por segurança ao mesmo tempo. É bem possível que a reinicialização ajude.
Acho que notei que seu servidor está configurado para usar hypervisor, enquanto o meu está configurado para usar lxc. Não sei se isso é importante. (Meu sistema mostra um processo /usr/bin/lxcfs que o seu não mostra, e o seu mostra um processo hv_vss_daemon que o meu não mostra.)
Além disso, talvez você possa compartilhar a saída de df -T e swapon.
Concordo com uma atitude cética sobre isso! Mas não estou sugerindo isso à toa - tenho certeza de que já vimos um caso de um sistema de longa execução que melhorou com uma reinicialização. (Editar: aqui, embora tenha sido um caso diferente.)