[postfix-es] Envio de mensajes al servidor, muy lento

José Luis Tallón jltallon en adv-solutions.net
Mie Dic 10 22:24:18 CET 2003


At 19:05 10/12/2003, you wrote:
>On 10 Dec 2003 at 16:00, José Luis Tallón wrote:
>
> > At 14:54 10/12/2003, you wrote:
> > >Hola a todos,
> > >Tengo una duda que me corroe :)
> > >Tengo funcionando postfix 1.12 con sasl y me ocurre que cuando se mandan
> > >mensajes con ficheros grandes (mas de 600ks) la transferencia es muy
> > >lenta, tanto que para ser por la red es casi como si se enviaran con un
> > >modem :-(
> > >Observo que el servidor cuando está recibiendo mensajes, consume mucha cpu
> > >--------------
> > >PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
> > >    774
> > > 
> postfix   25   0  3644  3644  1300         R    98,8     0,9         1:52
> > >    cleanup
> > >-------------
> > >Si coinciden varios envios, siempre la ocupación de la cpu es la misma,
> > >casi al 100% :- (.  Esto no es que sea un problema, pero lo jodio es que
> > >pa tener el servidor a unos metros por la red, es muy lento.
> > >Seguramente que hay algo que no estoy haciendo mal en la configuración,
> > >porque no creo que deba ir así de lento.
> > >La entrega de mensajes es muy rápida, tanto dentro de la red a los
> > >usuarios como a otros MTAs..
> >
> > Pese a mis dones de telépata ( ;-) ), no consigo ver clara tu
> > configuración.... xD
> > Por tanto, sé que todos agradeceríamos ver la salida de :
> >
> > - postconf -n
>
>Mi configuracion parte de los ficheros que genera el script de Fernando 
>Limon, con
>algunos añadidos.. Desde aquí... Gracias Fernando Limon y Ramon Pons !! :)

Se las daré en persona, mañana mismo si puede ser ;)


>Aqui vaaaa :)
>---cut---
>[snip]
>default_destination_concurrency_limit = 10

Esto dependerá del ancho de banda que tengas para salir a Internet

>local_destination_concurrency_limit = 2

.. y esto del ancho de banda del subsistema de disco de la máquina que 
contiene los buzones.

>local_recipient_maps = $alias_maps unix:passwd.byname

muy bien

>maps_rbl_domains = relays.ordb.org relays.visi.com bl.spamcop.net

Puedes añadir las listas de easynet.nl si quieres afinar un poco más ;)

>[snip]
>
>
> > - contenido de los "mapas" 'header_checks' y 'body_checks'
>
>Si pongo el contenido de las palabras que filtro con el body_checks, quizá 
>no te pueda
>enviar el mensaje, pero viene a ser así:
>
>---body_checks---
># spammers: texto que se encuentra en sus mensajes
>/^.*your TENIS/                 REJECT
>/^.*TEN1S/                              REJECT

- Estas dos expresiones regulares cubren *exactamente lo mismo*...
         ( toda línea que contenga "your TEN1S"  contiene "TEN1S" )

... y además de estar duplicadas, son tremendamente ineficaces:
         /TEN1S/ REJECT
     cumple la misma función

Por otra parte, todo mensaje que se refiera a esa parte de la anatomía 
masculina va a ser rechazado ( la expresión es muy general )... ojo con eso!!

>He cambiado la P por una T para no tener problemas con el envio.
>Y así hasta mas de 150 lineas conteniendo dominios que usan los spammers
>habituales, ejemplo:
>
>/^.*www.dominiospam.com/                                REJECT

Esto también es tremendamente ineficaz:

/www\.dominiospam\.com/ hace lo mismo, y es mucho más "barato" en ciclos de 
CPU.
¡Ojo! '.' significa "cualquier caracter". Lo que querías se escribe con 
'\.' [escapar el '.' ]

Si puedes, combina "unas cuantas" en una sola, también te hará ganar velocidad:
/www\.(undominio|otrodominio|mucho)spam\.com/   REJECT

[ esto rechaza "www.{undominiospam,otrodominiospam,muchospam}.com" ]
[ hasta unos 500 caracteres por línea es razonable -- creo recordar que el 
límite está en 2048 ]

>el header_checks:
>
>es el de Fernando Limon con añadidos mios:
>
>------header_checks------
>si lo pongo me fastidiará el envio de este mensaje, porque la palabra esa 
>de la "pastilla
>azul" es demasiado abundante...
>
>Es básicamente el que genera el script de Fernando, con muchas mas lineas 
>de este
>estilo:
>
>/^Subject:.*vixagra/                                    REJECT

Vale

>/^Subject:.*Pexnis/                                     REJECT
>/^Subject:.*PExNIS/                                     REJECT

Las expresiones regulares *no son sensibles* a mayúsculas/minúsculas. Así 
pues, las dos anteriores son realmente iguales

>/^Subject.*Silxxdenafil Citrate/                                REJECT
>/^Subject:.*your paxxssword, your access/                       REJECT

Aquí también puedes combinar... incluso aunque no haya "factor común" !!!

>He deformado las palabras para que no se fastidie el mensaje en el camino :)
>
># spammer que envia a terra
>/^Cc:.*xxxx en terra.es*/                          REJECT
>/^Cc:.*xxxstem en terra.es*/                       REJECT
>/^Cc:.*xxxsfp en terra.es*/                                REJECT
>/^To:.*xxxon en terra.es*/                         REJECT
>/^To:.*xxxxesystem en terra.es*/                   REJECT
>/^To:.*xxxfp en terra.es*/                         REJECT

Esto es un sitio genial para "sacar factor común" con el "@terra.es"... y 
además te ahorras muchos ciclos!!!

Si tu Postfix lo soporta ( postconf -m te lo dirá ), usa "mapas" PCRE [ 
pcre: ] en vez de POSIX RegExp [regexp:] .. son mucho más rápidos y 
bastante más potentes.

>Conjunto de direcciones deformadas que sufren o comparten un grupo de 
>spamers sin
>escrúpulos, los muy torpes siempre mandan los mensajes a un mismo grupo de 
>gente,
>y me los pude quitar de encima con esta simple cosa :)

xDDDD

> > - si hay "content filter", cuál es, configuración, y contenido de master.cf
>
>[snip]

master.cf está bien, como no podía ser de otra manera ;)

> > - qué configuración tiene la red? MTU? hay un firewall? cuál?
>
>El servidor está en una red clase c con menos de diez máquinas, detrás de 
>un router de
>telefónica con NAPT activado.

Vale.

>Hay usuarios dentro y fuera de la red.
>
>A ver si ves algo que cause el envio torpe, y esos consumos de cpu tan 
>exagerados.

El consumo de CPU debe bajar drásticamente una vez hagas los cambios que te 
he comentado en los {header,body}_checks.
Si aún después de optimizar las expresiones regulares sigo siendo "lento"( 
lo dudo ) tendremos que meternos con el sistema de ficheros, configuración 
del subsistema de disco, etc.

>Gracias de antemano. Si necesitas mas cosas, no dudes en decirmelo por favor.

Comprueba los ajustes que te he dicho, a ver cuánto se acelera "la cosa" :)

>Saludos,
>Alfredo

         José Luis Tallón 

-
Para ENVIAR mensajes a esta lista tienes que estar SUSCRITO a ella.
.
Envía la linea "unsubscribe postfix-es" en el cuerpo de un mensaje
a majordomo en WL0.org para quitarte de la lista.



Más información sobre la lista de distribución Postfix-es