desempenho do postfix com listas em main.cf

desempenho do postfix com listas em main.cf

Para definir uma lista de itens para atribuir a muitas opções diferentes no postfix, você pode usar uma lista separada por vírgulas como esta:

relay_domains = example.com,example.net,example.org

ou um mapa hash como este:

relay_domains = hash:/etc/postfix/relay_domains

e então use o postmap para converter esse arquivo de itens de chave e valor em um arquivo bdb.

Minha pergunta é: existe algum motivo de desempenho para usar o mapa hash em vez de apenas especificar a lista?

Responder1

Não tenho dados ou métricas para decidir se o desempenho é importante em ambos os casos. Tentarei explicar qual é o processo de fundo envolvendo esses dois casos.

Quando o daemon postfix estava em execução, há pouca diferença entre os dois porque:

  • Ao usar main.cf, o postfix analisa o arquivo de configuração, salva-o na memória e não verifica o arquivo novamente até que o postfix seja reiniciado ou o administrador emita postfix reloado comando.
  • Ao usar a tabela hash, o postfix analisa a tabela, salva-a na memória E verifica periodicamente se o arquivo foi alterado. Se o banco de dados foi alterado, o postfix será encerrado antes de tratar a próxima solicitação do cliente, para que um novo processo possa inicializar com o novo banco de dados.fonte

Agora, se você quiser alterar a lista, então

  • Depois de alterar main.cf, você deve invocar postfix reload. Isso forçará o daemon mestre a reler o arquivo de configuração e encerrar o processo filho para que ele possa obter uma nova configuração.fonte
  • Depois de alterar a tabela hash, não há necessidade de invocar postfix reload.

Ainda não entendo a diferença entre (1) reiniciar o processo filho por invocações manuais postfix reloade (2) reiniciar o processo filho acionado pela tabela hash foi modificado.

Aqui está algum conhecimento depois de ler opágina de manuais do postfix, especialmente emProcesso de Daemonsseção. Isso me ajuda a entender a diferença entre (1) reiniciar o processo filho por meio de invocações manuais postfix reloade (2) reiniciar o processo filho acionado pela tabela hash foi modificado.

Postfix tem o processo mestre chamadomestre. Ele é invocado pela primeira vez e serve como programa 'mestre'. Ele invocou outro daemon como smtpd, qmgr, trivial-rewrite sob demanda.

Existem quatro tipos de daemons postfix

  1. O daemon que não morrerá, portanto não captará automaticamente as alterações em main.cf. Invocar postfix reloadapós uma alteração na configuração fará com que o processo a leia novamente. Isso inclui:mestre.
  2. O daemon que se tornou um processo persistente, portanto não captará automaticamente as alterações em main.cf. Invocar postfix reloadapós uma alteração na configuração fará com que o processo a leia novamente. Isso inclui:qmgr,tlsmgr,verificar.
  3. O processo de longa execução que pode durar entre uma hora ou várias horas. Invocar postfix reloadapós uma alteração de configuração acelerará a alteração da configuração. Isso inclui:reescrita trivial,escolher,pós-tela,mapa proxy
  4. O processo de execução curta que é executado por apenas um período limitado de tempo. A invocação postfix reloadé desnecessária porque o processo relê main.cf ao ser executado novamente. Isto incluindoSMTP,smtpd,locale outros processos além das três categorias acima.

Se você estiver usando main.cfpara armazenar as listas, mas não invocar postfix reload, então

  • Daemons de categoria 4 irão buscá-lo imediatamente após o renascimento do processo devido à sua curta idade.
  • Daemons categoria 3 precisam de algum tempo para obter o efeito
  • Os daemons das categorias 1 e 2 nunca são relês main.cfaté que você invoque postfix reload:

Quando você está usando uma tabela hash para armazenar as listas e editou postmapo arquivo, então

  • Daemons da categoria 2,3,4 detectarão as alterações no arquivo. Portanto, não há necessidade de recarregar o postfix.
  • A categoria 1 do daemon não possui valor de parâmetro do tipo hash. Portanto, não tem efeito no master daemon.

Conclusão

Caso contrário, parece que a diferença de desempenho entre os dois casos acima foi pequena. Se você raramente altera a tabela, a diferença pode ser negligenciada. A exceção é se você fizer postfix reloadou alterar frequentemente a tabela hash, isso será uma preocupação de desempenho no qmgrprocesso. Veraquieaqui

Mais informações:Leiame de desempenho do Postfix

informação relacionada