[HSC MailInspector] - Whitelist e Blacklist gera lentidão no MLI após importação das mesmas via Interface Web

[HSC MailInspector] - Whitelist e Blacklist gera lentidão no MLI após importação das mesmas via Interface Web

 Problema

Whitelist e Blacklist com lentidão após importação via Interface Web

 Descrição

Foi identificado que a Whitelist (WL) e a Blacklist (BL) podem apresentar demora excessiva no processamento quando as listas são importadas via Interface Web.

Esse comportamento ocorre principalmente em clientes que possuem *muitas entradas cadastradas, resultando também em *alto consumo de CPU no servidor.

 Sintoma

Ao analisar os logs do HSC MailInspector, é possível observar tempo de processamento superior a 2 segundos, chegando a 7 segundos por checagem.

Exemplo:

Feb 12 10:50:13 colaboragov-mx01 HSC MailInspector[1903512]: HSC Whitelist - Finalizando Checagem ID: 360933A784B.A9FD9 , tempo : 7.000 Feb 12 10:50:19 colaboragov-mx01 HSC MailInspector[1903877]: HSC Whitelist - Finalizando Checagem ID: E49ED3A7A2A.A3854 , tempo : 7.000

 Como monitorar o tempo de checagem

Execute o comando abaixo:

bash tm | grep 'HSC Whitelist - Finalizando Checagem'

 Como monitorar o load do servidor

Execute o comando abaixo:

bash top

Exemplo de saída:

log top - 11:08:47 up 14 days, 18:26, 0 users, load average: 10.15, 11.02, 11.59

 

Causa:

O problema ocorre quando o cliente realiza exportação e importação das listas via Interface Web.

Nesse método, o sistema importa todas as entradas como se fossem cadastradas por Administrador, e não como entradas inseridas pelos usuários.

Diferença de Processamento:

  • Entradas cadastradas por Administrador (type = 0)
    São processadas uma a uma utilizando REGEX, o que torna o processo mais lento e pesado.

  • Entradas cadastradas por Usuário (type = 1)
    São processadas com casamento exato, sendo muito mais rápidas e eficientes.

Ou seja: ao importar via Web, até regras simples acabam sendo tratadas como regras administrativas, gerando lentidão e alto consumo de CPU.

 Solução:

  1. Acessar o MySQL na Console de Administração

    Conecte no banco de dados do MailInspector:

    bash mysql -S /opt/hsc/common/db/mysql-central.sock mailinspector
  2. Executar os comandos abaixo
    Para Whitelist/Allowlist:

    sql UPDATE mliWhiteList SET `type` = '1' WHERE (type = "0" AND NOT ( from_address LIKE '%*%' OR from_address = 'default' OR to_address LIKE '%*%' OR to_address = 'default' ) );

Para Blacklist/Blocklist:

  1. sql UPDATE mliBlackList SET `type` = '1' WHERE (type = "0" AND NOT ( from_address LIKE '%*%' OR from_address = 'default' OR to_address LIKE '%*%' OR to_address = 'default' ) );
  1. Aplicar as configurações
    Após executar os comandos, é necessário aplicar as configurações no sistema para efetivar a alteração.

 Validação (após a correção):

Após o ajuste, o tempo de checagem deve reduzir drasticamente, ficando próximo de 0.000s, conforme exemplo:

log Feb 12 11:03:45 colaboragov-mx01 HSC MailInspector[1926369]: HSC Whitelist - Finalizando Checagem ID: AE04F3A784B.A2116 , tempo : 0.000 Feb 12 11:03:51 colaboragov-mx01 HSC MailInspector[1926492]: HSC Whitelist - Finalizando Checagem ID: 069FF3A7A2A.AEDA9 , tempo : 0.000 Feb 12 11:03:55 colaboragov-mx01 HSC MailInspector[1927156]: HSC Whitelist - Finalizando Checagem ID: 29CF83A7A35.A5F92 , tempo : 0.000

Load após correção:

Exemplo de saída do TOP:

log top - 11:08:47 up 14 days, 18:26, 0 users, load average: 0.15, 1.02, 1.59

 

 Artigos relacionados