Para definir una lista de elementos para asignar a muchas opciones diferentes en postfix, puede usar una lista separada por comas como esta:
relay_domains = example.com,example.net,example.org
o un mapa hash como este:
relay_domains = hash:/etc/postfix/relay_domains
y luego use postmap para convertir ese archivo de elementos clave y valor a un archivo bdb.
Mi pregunta es: ¿hay alguna razón de rendimiento para utilizar el mapa hash en lugar de simplemente especificar la lista?
Respuesta1
No tengo datos ni métricas para decidir si el rendimiento importa en ambos casos. Intentaré explicar en qué consiste el proceso de fondo de esos dos casos.
Cuando se estaba ejecutando el demonio postfix, hay poca diferencia entre esos dos porque:
- Cuando se utiliza
main.cf
, postfix analiza el archivo de configuración, lo guarda en la memoria y no vuelve a verificar el archivo hasta que se reinicia postfix o el administrador emitepostfix reload
un comando. - Cuando se utiliza la tabla hash, postfix analiza la tabla, la guarda en la memoria Y comprueba periódicamente si el archivo ha cambiado. Si se cambió la base de datos, postfix finalizará antes de manejar la siguiente solicitud del cliente, de modo que un nuevo proceso pueda inicializarse con la nueva base de datos.fuente
Ahora, si desea cambiar la lista, entonces
- Después de cambiar
main.cf
, debes invocarpostfix reload
. Obligará al demonio maestro a volver a leer el archivo de configuración y finalizará el proceso secundario para que pueda seleccionar una nueva configuración.fuente - Después de cambiar la tabla hash, no es necesario invocarla
postfix reload
.
Aún así, no entiendo la diferencia entre (1) reiniciar el proceso secundario mediante invocaciones manuales postfix reload
y (2) reiniciar el proceso secundario desencadenado por una tabla hash modificada.
Aquí algunos conocimientos después de leer elpágina de manuales de postfix, especialmente enProceso de demoniossección. Esto me ayuda a comprender la diferencia entre (1) reiniciar el proceso secundario mediante invocaciones manuales postfix reload
y (2) reiniciar el proceso secundario desencadenado por una tabla hash modificada.
Postfix tiene el proceso maestro llamadomaestro. Se invocó por primera vez y sirvió como programa "maestro". Invocó otros demonios como smtpd, qmgr, trivial-rewrite bajo demanda.
Hay cuatro tipos de demonios postfix.
- El demonio que no morirá, por lo que no detectará automáticamente los cambios en main.cf. Invocar
postfix reload
después de un cambio de configuración hará que el proceso lo vuelva a leer. Esto incluye:maestro. - El demonio que se convirtió en un proceso persistente, por lo que no detectará automáticamente los cambios en main.cf. Invocar
postfix reload
después de un cambio de configuración hará que el proceso lo vuelva a leer. Esto incluye:gerente qq,tlsmgr,verificar. - El proceso de larga duración que puede durar entre una hora y varias horas. Invocar
postfix reload
después de un cambio de configuración acelerará el cambio de configuración. Esto incluye:reescritura trivial,levantar,postpantalla,mapa proxy - El proceso de ejecución corta que se ejecuta solo por una cantidad de tiempo limitada. La invocación
postfix reload
es innecesaria porque el proceso vuelve a leer main.cf cuando se ejecuta nuevamente. Esto incluyeSMTP,smtpd,localy otros procesos además de las tres categorías anteriores.
Si está utilizando main.cf
para almacenar las listas pero no invocarlas postfix reload
, entonces
- Los demonios de categoría 4 lo recogerán inmediatamente después de la reactivación del proceso debido a su corta edad.
- Los demonios de categoría 3 necesitan algo de tiempo para obtener el efecto.
- Los demonios de categoría 1 y 2 nunca se vuelven a leer
main.cf
hasta que invocaspostfix reload
:
Cuando utiliza la tabla hash para almacenar las listas y edita postmap
el archivo, entonces
- Los demonios de categoría 2,3,4 detectarán los cambios en el archivo. Así que no es necesario recargar postfix.
- La categoría 1 del demonio no tiene un valor de parámetro de tipo hash. Por lo tanto, no tiene ningún efecto dominar el demonio.
Conclusión
De lo contrario, parece que la diferencia de rendimiento entre los dos casos anteriores fue pequeña. Si rara vez cambia la tabla, entonces se puede ignorar la diferencia. La excepción es si usted hace postfix reload
o cambia con frecuencia la tabla hash, entonces habrá un problema de rendimiento en el qmgr
proceso. Veraquíyaquí
Informacion adicional:Léame de rendimiento de Postfix