[zorp] Zorp 2.1.5.5 can't handle load

Sheldon Hearn zorp@lists.balabit.hu
Tue, 25 May 2004 13:45:02 +0200


On Tue, 2004-05-25 at 13:26, Balazs Scheidler wrote:

> There's a --threads command line argument for Zorp. It will not create
> more than that number of threads. As it seems you might also have more
> than the maximum number of file descriptors. You might need to increase
> your resource limits.

I thought the resource limits were adjusted by zorpctl.  I edited the
script to print them, and they looked fine.

> The thread limit of 1024 per process is inherent to libc 2.2.5, later
> libcs (at least 2.3.2) with NPTL support and kernel 2.6 (or 2.4 with
> backported O1/futex patch) can run with more than this limit.

Right.  I have --threads set to 1000.  And when I reach the maximum, I
see a log message that says "Too many running threads, ...".  So that's
fine.

The thing I think is a problem is that it falls over even though it's
limited in this way.  Why do I get these errors (which cause the entire
instance to die) when I've limited the number of threads per instance to
1000?

(Log thread): GLib-ERROR **: Cannot create pipe main loop wake-up: Too
many open files

That's why I asked about your glib patches.

> I think the better solution is to use as many instances for the same
> traffic as you need (separating the load using packet filter rules).

Yes, I've already taken your advice here.

> hmm. that system load is quite high, it should not be more than 20-30%
> How many interrupts/context switches do you have?

I'll take a look, but I'm really not so worried about the CPU.  I'm
worried about being unable to limit the number of threads a single Zorp
instance will start.  If I can't do that, an attacker can easily DOS the
Zorp cluster by creating lots of TCP connections.

So this GLib-ERROR seems quite serious to me.

Ciao,
Sheldon.