On Wed, 2009-06-03 at 22:00 +0000, Luis campo wrote:
> this is an example of var / log / qmail / spamd
> 
> 2009-06-03 12:00:16.471682500 [775] info: spamd: result: Y 15 -
> DCC_CHECK,DIGEST_MULTIPLE,HTML_MESSAGE,MIME_HTML_ONLY,MISSING_DATE,RAZOR2_CF_RANGE_51_100,RAZOR2_CF_RANGE_E8_51_100,RAZOR2_CHECK,RDNS_NONE,URIBL_BLACK
>  
> scantime=8.3,size=5837,user=fri...@ec-red.com,uid=89,required_score=3.0,rhost=172.16.10.9,raddr=172.16.10.9,rport=47584,mid=<789509335664072.ftlwktkqdskf...@[85.94.122.108]>,autolearn=spam

Something is working, somehow...

> 2009-06-03 12:00:16.531889500 [19168] info: prefork: child states: BBBBBBBBBB
> 2009-06-03 12:00:16.531949500 [19168] info: prefork: server reached 
> --max-children setting, consider raising it

There's your problem.

You got 10 spamd children, all BUSY. That's what the 'B's mean.

Since you got 1 GByte of RAM, you could try increasing the number of
children. *Slowly*. If you exceed what your system's RAM can handle,
you'll hit swap and thrashing will kill the server.

Hmm, given this occurs after a while of operation only, that might be
exactly it. Swap thrashing? What does the command 'free' return?


Another possibility is, that you are scanning all messages regardless,
including really *large* messages. You shouldn't scan messages larger
than, say, 0.5 MByte.

The scantime of 8-10s is somewhat reasonable, probably caused by the
issue we're trying to nail. With normal operation and the hardware
capable of running the children, it should be considerably lower, like a
few seconds average, with some occasional spikes. That's too long for a
normal average.


Do you have any third-party rule-sets installed? Using sa-update, which
channels? Any custom cf files or something? Anything you added?


-- 
char *t="\10pse\0r\0dtu...@ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4";
main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1:
(c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}

Reply via email to