On Sun, 2014-05-25 at 07:58 +0200, Alex Andreotti wrote:
> On Fri, May 23, 2014 at 09:04:29PM +0200, Karsten Bräckelmann wrote:

> > Ironically, the uninteresting noise you asked to get rid of shows, there
> > may be some issue with your setup. (Granted, or a deliberate config
> > decision.)
> > 
> > The --max-conn-per-child default is 200. Your ratio of child status and
> > spawning new children in the pasted logs is about 2:1. Did you
> > deliberately set that option to 2?
> > 
> > The prefork child status logs are not only informational, but may also
> > indicate warnings or even error conditions, e.g. in case you get a
> > consistent high number of non-idle children.
> 
> Ah! I wasn't aware about --max-conn-per-child, didn't changed it
> directly

If you did not set that option, you do have a problem.


> but recently have changed --max-children to 7 (one for earch
> fetchmail instance) where the comment above the setting say "make sure
> to not use higher than 5" ...
> I'm using 3 now which I guess are still a way too much for my needs,
> will investigate for better settings soon.

See, once again that needless info log comes in handy. ;)  See the

  prefork: child states: II

lines. They are generated at the point where the prefork algorithm
decides if more or maybe less worker children should be around, so about
after a message has been processed.

You can easily see there are currently two children, both idle (I), none
busy (B) processing a message. If your system is really busy processing
lots of messages, you'd see the number raise up to max-children -- and
eventually go back down with load decreasing.

Unless you do see constant higher load and busy children, low settings
are just fine. Even if occasionally all your fetchmail instances would
hammer away at SA at the same time, there is no need to raise the number
of children. Mail will simply be queued and processed once a spamd child
becomes idle. A delay of a few seconds, hardly worth the additional
resources needed to keep around lots of spamd instances at all time.


-- 
char *t="\10pse\0r\0dtu\0.@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