Utilizo postfix para realizar la entrega final de un sistema de correo que he escrito. Así que esta instalación de Postfix sólo acepta mi correo y lo devuelve. Cuando la cola de postfix está vacía, puede aceptar un correo en aproximadamente 5 ms. Cuando la cola tiene entre 150.000 y 200.000 mensajes aproximadamente, la velocidad de transferencia de mi parte a postfix es muy lenta, como 50-100 a veces 500 ms.
Tengo tiempos de registro en cada parte de la conversación SMTP, para poder ver a dónde va el tiempo. Parte de esto ocurre cuando estoy esperando una respuesta del comando RCPT TO, pero la gran mayoría de las veces desaparece después de enviar el punto final, antes de recibir la respuesta "250 bien en cola como...".
Estoy pensando que tal vez el retraso de RCPT TO se deba a una búsqueda de DNS, pero eso no me ayuda con el tiempo de cola. Mantengo un socket TCP abierto para todos los correos electrónicos que envío y RSET la conversación para cada correo, por lo que no hay pérdida de tiempo para establecer y deshacer conexiones TCP, todo está esperando que Postfix ponga el mensaje en cola.
Todo lo que he leído sobre postfix para ajustar el rendimiento tiene que ver con la gestión de colas y el envío de correo para este o aquel dominio aquí y allá. Pero, en primer lugar, me preocupa que Postfix solo acepte el correo rápidamente.
¿Hay alguna manera de saber qué está haciendo Postfix con todo este tiempo o hay alguna manera de hacerlo más rápido? La cola /var/spool/postfix está en el disco local, por lo que no puedo hacerla más rápida.
¿Alguna sugerencia?
Respuesta1
Establezca lo siguiente enmain.cf
hash_queue_depth = 3
hash_queue_names = deferred, defer, incoming, active
Esto produce subdirectorios en las colas entrantes y activas para que los directorios planos no contengan todos los correos a la vez. Ahora están colocados en subdirectorios.
Pero tenga en cuenta: tener entre 150.000 y 200.000 mensajes esperando ser entregados muestra una comprensión increíblemente errónea del envío equilibrado de correos electrónicos. Esto me parece spam...
Respuesta2
Una de las soluciones fue tener un servidor de correo secundario que maneje todos los rebotes que están esperando ser entregados; esta fue la mejor solución para mantener el correo electrónico real.
Respuesta3
Esta es una pregunta muy antigua pero la tecnología no ha cambiado mucho/las respuestas existentes no son muy útiles.
Cuando la cola tiene entre 150.000 y 200.000 mensajes aproximadamente, la velocidad de transferencia de mi parte a Postfix es muy lenta.
Por la forma en que se presenta esta pregunta, parecería que el OP se refiere a laactivocola aquí (Postfix tiene varias colas). Y Postfix está haciendo exactamente lo que debe hacer para evitar asfixiarse. La cola activa es donde se encuentran todas las cosas inteligentes con la programación de entregas. Cuando crece demasiado, la programación se convierte en el cuello de botella.
Cuando vea problemas de rendimiento relacionados con la carga, es una buena idea verificar las métricas de carga, CPU e IO para ver si hay un cuello de botella de hardware.
Cuando esté operando un relé de solo envío, reducir in_flow_delay aquí reducirá la limitación de los clientes. Pero es necesario mantener bajo el tamaño de la cola activa. En este caso, puede resultar útil limitar la velocidad a la que se pasan los mensajes de la cola entrante a la cola activa. Pero la mejor solución es sacar cosas de la cola activa más rápido. Lo mejor que puedes hacer aquí es una buena gestión de la reputación, un DNS rápido y, si es posible, distribuir el envío entre varias direcciones IP. Reducir la frecuencia de reintento también ayudará con la velocidad a la que se llena la cola activa y con los proveedores que limitan la aceptación según la frecuencia de los intentos de conexión.
Se deben considerar esenciales SPF, DMARC y DKIM (correctamente configurados).
Debido a que cada uno inventa sus propios mecanismos para lidiar con el spam, siempre habrá valores atípicos, para los cuales necesitará configurar transportes personalizados.