[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.000Como 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
topExemplo 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:
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 mailinspectorExecutar 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:
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' ) );
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.000Load 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