Subject: Re: mclpool limit reached
To: <>
From: None <sigsegv@rambler.ru>
List: netbsd-users
Date: 08/07/2004 03:51:50
sigsegv@rambler.ru wrote:

> I wrote a small application which runs a tight loop, creating a large 
> number (60 to 200) of threads as fast as possible. Each thread makes a 
> connection to a server, the server is running on another machine on my 
> LAN. Each thread calls socket(), connect() and write(). I am using 
> this to simulate a large number of client connections and how this 
> impacts the performance of the server. The problem is, running this in 
> a very tight loop causes the network interface to become inoperable, 
> and the following message gets logged into /var/log/kern.log
>
> WARNING: mclpool limit reached; increase NMBCLUSTERS
>
> After this happens, I cannot ping from this machine, and I cannot 
> access this machine from other machines on the network. My question 
> is: what does the error message mean and why doesn't socket() or 
> connect() fail, instead of just causing the network interface to hang 
> and deny service to other users/services. Is this error recoverable 
> and what can I do to recover from it gracefully, no matter how many 
> simultaneous connections are generated.
>
> Thanks
>
> PS this was done on i386 NetBSD-2.0F
>
Well I've just noticed that the server's network interface gets affected 
as well. The client's network interface springs back to life in a few 
minutes after I terminate the client, and the server's interface is hung 
until I terminate the server application.