Evitando problemas no servidor SMTP para quem usa sendmail

Publicado por João Paulo de Oliveira Faria em 21/11/2004

[ Hits: 13.225 ]

Blog: http://www.jpfaria.com

 


Evitando problemas no servidor SMTP para quem usa sendmail



Opa, lá venho eu aqui novamente falando sobre servidor de e-email. É que estou configurando um grande servidor de e-mail com mais de 10 mil contas e o lance tem que funcionar direito.

Ao longo do tempo tive alguns problemas de timeout no servidor quando se tentava mandar mensagens. Os dois principais problemas foram:
  • O diretório de envio de e-mail, no meu caso o /var/spool/mquee, não pode ter muitos arquivos, não parei para calcular mas estava deixando a fila muito grande, acontecia de demorar um pouco para a mensagem ser enviada. A SOLUÇÃO: Coloque um timeout para as mensagens que não saíram do seu servidor sejam eliminadas. verifique as diretivas de timeout no sendmail.cf

  • Esse é um problema muito sério, um usuário que recebe e-mail o tempo todo, e que sua conta esteja muito grande. Eu tinha um usuário no meu server que era ele quem recebia todo e-mail de retorno de uma newsletter, a conta dele chegou a 400MB e como ele recebia e-mail válido o tempo todo, o servidor abria esse arquivo enorme toda hora fazendo com que o SMTP travasse por causa do procmail que estava ocupado tentando abrir o arquivo.

Soluções


a - Uma máquina parruda (hahaha) ou se você tem um server com baixa capacidade use um sistema de quota para que as contas de e-mail não fiquem muito grande.

b - Verifique se você tem um usuário como o meu acima e tente eliminá-lo.

c - Use sempre sistemas de antispam e antivírus. Seria interessante não se usar os sistemas padrões de aviso informando ao e-mail a ocorrência de um vírus ou SPAM, isso gera MUITO tráfego no servidor.

d - Se seu server atende somente sua empresa, aconselhe seus usuários a não deixarem cópias de mensagem dentro do server isso vai virando uma bola de neve e quando você for ver, a conta do usuário já está em 100MB.

Aos poucos vou colocando mais dicas.

[]'s

Outras dicas deste autor

Problema em instalação com HD SCSI

Mouse + TouchPad no X11

Deixando o relógio sempre ajustado no Slackware

Tirando e-mail de retorno do Clamav-milter

Atualização diária do ClamAV antivírus

Leitura recomendada

Guardando SPAM com Procmail e SpamAssassin

Cyrus IMAPD - Erro "Unsupported feature(s) in require" ao aplicar filtros Sieve

Otimizando as consultas do MySQL no Postfix

Teste de autenticação em servidor IMAP

Envio dos resultados das atualizações do Clamav para seu e-mail

  

Comentários
[1] Comentário enviado por fabio em 21/11/2004 - 09:42h

Olá João! Queria discutir sobre alternativas às suas soluções, acho que isso pode adicionar um pouco à dica também. Essas são soluções que implementei num provedor com 15 mil caixas e fluxo de 800 mil e-mails por dia.

1. Sobre o lance de apagar as mensagens que ficam na fila de espera por não terem sido entregues: pode ser que o servidor de e-mail do destinatário esteja fora do ar e volte daqui a algumas horas ou até mesmo alguns dias. Se apagar a mensagem, pode ser uma mensagem importante sendo descartada. O ideal é marcar pra exclusão somente as mensagens de "delivery error" e não de erro temporário de entrega.

Uso Exim, mas acredito que no sendmail exista esse recurso. O que você pode fazer pra contornar a fila grande é configurá-lo pra usar "splitdir", ou seja, dentro de /var/spool/mquee ele cria dezenas de sub-diretórios. O problema no servidor de e-mail não é a quantidade de arquivos e sim uma "deficiência" do sistema de arquivos EXT2/3, que fica lento de ser lido quando há um número exagerado de arquivos num mesmo diretório. O melhor sistema de arquivos nesse caso é o XFS, do Solaris. Sendo assim os sub-diretórios acabam com o problema de milhares de arquivos num mesmo dir.

Com relação à caixas postais grandes, como uma de 400M, pode ser que um provedor queira oferecer mailboxes sem quota, isso serve como diferencial da empresa, ou até mesmo a diretoria que gosta de deixar tudo no servidor, enfim, cada caso é um caso. O que detona o load do servidor é o fato de ter de abrir um arquivo de 400MB de uma só vez, isso é fogo. A solução pra isso é converter suas mailboxes do formato MBOX (arquivo único) para o formato maildir. O formato maildir é basicamente um conjunto de 3 diretórios para cada caixa postal. Dentro desses diretórios você tem as mensagens, sendo que cada mensagem é um arquivo separado. Assim o procmail ou seja lá quem for não precisa tratar arquivos de 400MB e sim arquivos individuais, que no geral não passam de 200/300kb. O conjunto de todos os arquivos do usuário vão formar os 400M, mas isso será um mero detalhe. hehehe

Bom, espero ter contribuído com alguma coisa :)

[]'s

[2] Comentário enviado por jpfaria em 22/11/2004 - 10:55h

Opa fábio,

Ainda não estudei a fundo esses recursos que você falou.. tb não sei se é possível sendmail, mas de qualquer forma, foi de grande ajuda sim e seus comentários sempre serão bem vindos.

[]'s

[3] Comentário enviado por neriberto em 24/11/2004 - 13:23h

Realmente tudo isto acima é muito interessante, são detalhes que fazem a diferença.

[4] Comentário enviado por jukabala em 20/03/2005 - 15:33h

Olá gente,,, aproveitando o assunto,,, voces podem me ajudar??? tenho um servidor slackware 10.1, com apache e sendmail,,, tenho 8 clientes virtuais com suas respectivas contas de e-mail,,, o problema é que não consigo mandar e-mail via smtp, só consigo receber via pop3, acho que é alguma configuração do sendmail.cf,,, isso acontece usando o outlook express,,,, se usar o uebimiau, funciona tudo , o que pode estar acontecendo?

me audem,,, Juarez



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts