Problema com o uso intensivo de CPU

Prezados,
Estou enfrentando um problema atípico no meu servidor/aplicação OJS. O MySQL está consumindo muitos recursos, a ponto de comprometer a estabilidade do sistema.
Já realizei diversos ajustes na swap, pois o serviço estava utilizando memória de troca mesmo com uma boa parte da RAM ainda disponível.

Além disso, também ajustei alguns parâmetros no banco de dados na tentativa de mitigar o problema.




Quando rodo o comando “htop” no momento que está travando o sistema, tenho a seguinte informação:


Vale ressaltar que fizemos a expansão do processador de 4 para 6 núcleos e mesmo assim ele está consumindo 100%.

Informações da minha aplicação:
OJS versão 3.4.0.1
Servidor Debian 12
Mysql 8.0.41
PHP 8.2.26
Apache 2.4.62

Eu realmente não sei o motivo do banco estar consumindo tanto assim, visto que não tem nenhum evento que signifique esse pico constantemente.

Outra coisa que percebi é que o time out aparece mais quando tentamos acessar as submissões, é ela que fica mais lenta.
Avaliei o banco de dados e a consulta que está possivelmente ocasionando o problema é:
select metrics_submission.submission_id, SUM(metric) AS metric from metrics_submission where context_id in (2) and metrics_submission.submission_id in (3445) and assoc_type in (1048585, 515) and date between ‘2001-01-01’ and ‘2025-04-07’ group by metrics_submission.submission_id order by metric desc

Já pegaram esse problema? conseguem me ajudar?

Desde já, obrigada.

Hello @Ingrid1

Sorry to inform you that although I did not understand Spanish, I try to answer based on what I understand.
Seems like your OJS becomes unresponsive because of the database overload.

Do you have activate “Recommended Similar Article” or “Recommend Articles by Author” these plugin on some case become the root cause of such database overload ?

On other suggestion, you can check whether your webserver get most of the traffic from bot ? you can consider to block such bot. Some AI bots crawl excessively recently on the OJS based site.

Regards
Hendra
OJT Team.

1 Like

Olá @Ingrid1

A maioria das revistas de sua instalação parece ter o plugin Artigos recomendados por Autor ativo. Desativá-lo nelas todas deve resolver o problema. O resultado será visto após as conexões atuais com o banco de dados expirarem, ou reiniciando-o.

Além disso, tem revistas com muitos idiomas ativos. Isso faz com que os indexadores (ex.: Google, bing, os das empresas de IA…) tentem indexar a revista nestes idiomas. Deixando apenas os idiomas efetivamente utilizados pelas revistas (ex.: que os editores preenchem as informações da revista) ajudará a ter menos robôs congestionando o servidor.

Olá pessoal, grata pelo retorno.
Sobre a desativação do plugin o cliente me reportou o seguinte: O plugin de artigos do mesmo autor está ativo, porque o considero estratégico para captação de citações (métrica muito relevante de acompanhamento do desempenho de revistas, útil para indexação, avaliação CAPES/MEC e continuidade da existência do título).
Fico de mão atadas com relação a este plugin, pois é de grande utilidade deles.
Irei verificar sobre os bots como @navotera recomendou.
Sobre os idiomas ativos, todas as revistas que temos precisa ter o tradutor, pois são acessadas por usuários estrangeiros.
Teriam mais alguma outra sugestão de configuração para amenizar os picos constantes de conexão que causem a queda do serviço?

Grata!

Sobre a desativação do plugin o cliente me reportou o seguinte: O plugin de artigos do mesmo autor está ativo, porque o considero estratégico para captação de citações (métrica muito relevante de acompanhamento do desempenho de revistas, útil para indexação, avaliação CAPES/MEC e continuidade da existência do título).

Desconfio que o plugin esteja exibindo artigos de autores sem relação com o “mesmo autor”. Pode confirmar?

Isso pode ocorrer devido a publicação de artigos pelo plugin de submissão rápida. Se for o caso, entendo que o plugin não está servindo para o objetivo desejado.

Soluções alternativas à desativação do plugin:

  • se estiver exibindo autores diferentes do “mesmo autor”, corrigir o código do plugin para se comportar como esperado.
  • se estiver exibindo apenas artigos do mesmo autor, implementar cache no plugin

Sobre os idiomas ativos, todas as revistas que temos precisa ter o tradutor, pois são acessadas por usuários estrangeiros.

A funcionalidade de vários idiomas do OJS não traduz os textos da revista, no máximo exibe os textos nativos da aplicação no idioma selecionado. Nesse sentido, é recomendado que:
a) Sejam inseridos os textos em todos os idiomas suportados pela revista (ex.: normas, sobre a revista, política de privacidade, etc)
b) Sejam desativados idiomas onde os editores não mantenham estes textos traduzidos e atualizados.

Exemplo de revista com muitos idiomas ativos: Revista Baiana de Terapia Ocupacional.

Observação: alguns navegadores permitem que o usuário traduza páginas para o seu idioma, sem necessidade de nenhuma funcionalidade específica no OJS. No entanto, ter textos misturados em mais de um idioma tende a prejudicar essa funcionalidade.