Eu não tenho dados ou métricas para decidir se o desempenho é importante nos dois casos. Vou tentar explicar o processo de fundo que envolve 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 emite o comandopostfix reload
. - Ao usar a tabela de 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 manipular a próxima solicitação do cliente, para que um novo processo possa ser inicializado com o novo banco de dados. fonte
Agora, se você quiser alterar a lista,
- Depois de alterar
main.cf
, você deve invocarpostfix 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 de hash, não é necessário invocar
postfix reload
.
Ainda não entendi a diferença entre (1) reiniciar o processo filho invocando manualmente postfix reload
e (2) a reinicialização do processo filho acionado pela tabela hash foi modificada.
Aqui temos algum conhecimento depois de ler a página de manuais de postfix , especialmente no Processo Daemons seção. Isso me ajuda a entender a diferença entre (1) reiniciar o processo filho invocando manualmente postfix reload
e (2) a reinicialização do processo filho acionado pela tabela hash foi modificada.
O postfix tem o processo mestre chamado mestre . É invocado pela primeira vez e serve como programa 'mestre'. Ele invocou outro daemon como smtpd, qmgr, reescrita trivial sob demanda.
Existem quatro tipos de daemons postfix
- O daemon que não morrerá, por isso não selecionará automaticamente as alterações para main.cf. Invocar
postfix reload
depois de uma alteração na configuração fará com que o processo o re-leia. Isso inclui: mestre . - O daemon que se tornou um processo persistente, por isso não selecionará automaticamente as alterações para main.cf. Invocar
postfix reload
depois de uma alteração na configuração fará com que o processo o re-leia. Isso inclui: qmgr , tlsmgr , verifique . - O processo de longa duração que pode ser executado por intervalo de uma hora ou várias horas. Chamar
postfix reload
depois de uma alteração na configuração acelerará a alteração da configuração. Isso inclui: reescrita trivial , coleta , post-screen , proxymap - O processo de execução curta que é executado apenas por um período de tempo limitado. Invocar
postfix reload
é desnecessário porque o processo relê main.cf ao executar novamente. Isso inclui smtp , smtpd , local e outros processos além de três categorias acima.
Se você estiver usando main.cf
para armazenar as listas, mas não invocar postfix reload
,
- Daemons categoria 4 irá pegá-lo imediatamente após o processo de revitalização por causa de sua curta idade.
- Daemons categoria 3 precisam de algum tempo para obter o efeito
- As daemons de categoria 1 e 2 nunca relêem
main.cf
até você chamarpostfix reload
:
Quando você estiver usando a tabela de hash para armazenar as listas e você postmap
-ed o arquivo, então
- A categoria Daemons 2,3,4 detectará 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. Então, não tem efeito para mestre daemon.
Conclusão
Caso contrário, parece que a diferença de desempenho entre dois casos acima foi pequena. Se você raramente mudar a tabela, a diferença pode ser negligenciada. A exceção é que, se você fizer postfix reload
ou alterar a tabela de hash, isso será uma preocupação de desempenho em qmgr
process. Veja aqui e aqui
Mais informações: Leia-me do Postfix Performance