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