RE: Pomalý spamfilter

Petr Řehoř Petr.Rehor na i.cz
Pátek Červen 25 13:27:18 CEST 2004


> mame RH 9 a jeho sendmail. Pokousel jsem se rozjet spamassassin s
> nasledujicim radkem v konfiguraku sendmail.mc
> 
> INPUT_MAIL_FILTER(`spamassassin',`S=local:/var/run/spamass.soc
> k,F=T=C:15m;S:4m;R:4m;E:10m')dnl
> 
> Vse fungovalo, ale problem byl s tim, ze to strasne zpomalilo 
> server. Pri stazeni nekolika mailu fetchmeilem se pocitac div
> nezavaril a když nektery z uzivatelu zrovna odesilal postu,
> vratilo mu to s hlaskou, ze to ma zkusit za chvili. Nejedna se
> o nijak vytizeny server cca 10 mailu za hodinu (8 pocitacu pro
> tri male firmy). 

Nasazeni spamassassinu neni uplne trivialni a je pro nej potreba
"naladit" hardware tak, aby mailserver byl schopen podavat pozadovany
vykon i ve spickach, protoze spamassassin je narocny na vypocetni
vykon a pamet, jelikoz musi mail prohnat velkym mnozstvim regularnich
vyrazu.

Moje zkusenosti z provozu na P II 300 MHz, 128 MB RAM jsou, ze zvlada
bez problemu tak pet soucasne zpracovavanych mailu. Potom zacina
intenzivne svapovat a stoupa i zatizeni procesoru. Pri vice nez deseti
soucasne zpracovavanych mailech se pri delsim provozu (napr. kdyz se
po odstavce do nej zacinaji vysypavat mailove fronty ostatnich mail
serveru) usvapuje k smrti. Z kratkodobych spicek se obvykle po nekolika
minutach intenzivniho svapovani zase zotavi.

Udelal jsem si brzdy, aby se mi server neusvapovaval, ma to zase ale
jine potize - pri velke zatezi zacne maily odmitat s docasnou chybou
a ty pak nekde lezi ve fronte a jsou doruceny se zpozdenim.

# maximalne osm spojeni najednou
define(`confMAX_DAEMON_CHILDREN',`8')

# kdyz vzroste zatizeni nad 1 tak se vklada do kazdeho SMTP prikazu
# prodleva 1 s
define(`confDELAY_LA', `1')

# kdyz vzroste zatizeni nad 2 tak se prijate maily ukladaji do fronty
# a odeslou se pozdeji. na problem se spamassinem to nema prakticky
# zadny vliv, protoze se to udela az po dokonceni kontroly
# spamassassinem
define(`confQUEUE_LA', `2')

# kdyz vzroste zatizeni nad 3 tak se zacnou odmitat nove spojeni
define(`confREFUSE_LA', `3')

> Da se nejak nastavit, aby si sendmail vsechny prichozi maily 
> ukladal do fronty a neodmital je? Nebo je chyba ve spamassassinu?

Bohuzel architektura sendmailu a jeho rozhrani milter, ktere se pro
toto pouziva, neumoznuje maily napred ulozit do lokalni fronty a az
pozdeji provest kontrolu tela mailu.


Petr Rehor
S.ICZ a.s.
Pobocka Ceske Budejovice
J. S. Baara 40, 370 01 Ceske Budejovice, CZ
Tel: +420 387 312 808
Fax: +420 387 311 480
mailto:petr.rehor na i.cz
http://www.i.cz


Další informace o konferenci Sendmail