Child Processes

Most applications that continuously handle a large number of requests have some sort of subprocess mechanism. With each request being handled by a different subprocess, even if something unexpected causes one of the requests to go dramatically awry, it will just hang that one subprocess but not the whole application. As it happens, each subprocess of DansGuardian for handling a request is visible to the OS as a separate "child process". (A couple of other DansGuardian processes will be visible to the OS too.)

In DansGuardian, there are several parameters related to the number of "child processes" that handle individual requests. Appropriate tuning of these parameters might affect performance. It's roughly the case that increasing the numbers will speed up the operation of large systems (up to a point). But larger numbers will use more memory, and if the total size of all DansGuardian processes plus Squid spills over real memory into virtual memory, speed may noticeably decrease. So there's a balance to be struck.

You will probably want to tune maxchildren to be about the same as your peak number of simultaneous users. And you may want to tune minsparechildren too so it's about the number of users that typically start activity at the same time. If you increase either of these parameters, you may need to also increase the other parameters proportionally.

The parameters include:


Close Window