2.2.0 & dhcp: regression

Eugene Grosbein fr at grosbein.net
Fri Jul 12 14:42:56 CEST 2013

On 12.07.2013 19:07, Alan DeKok wrote:
> Eugene Grosbein wrote:
>> Extra sockets got opened just fine, I see that with lsof/fstat here.
>   OK.  But I'm not aware of any change in any code which will limit the
> number of sockets.
>> 2.1.12 has not this issue with same Perl.
>   OK.  The rlm_perl module changed.  It added some locks to avoid issues
> with Perl Clone and threads.  Maybe you're running into lock contention.

The problem is always reproducible and have obvious "hard limit"
correlating or consisting with number of open files.
>   i.e. it worked in 2.1.12 by magic, because thread-specific structures
> were not locked properly.  Adding locks makes it *correct*, but at the
> price of performance.

I understand. With one exception - we have not performance problem,
we have full lockup of all threads and after that not one request is served.

>> Yes, that's a lot. That reflects high load we may have.
>> We do not want to queue requests that may be processed in parallel.
>   Queuing requests for a short time shouldn't hurt anything.  DHCP
> clients will wait ~8 seconds for a response.
>   Is your load really that high?  i.e. how many packets/s does the
> server receive?  How long does it take to process one packet?

That's another topic. I'd like not to turn to deep discussion of our load.
In short, there may be bursts of thousands of DHCP requests per second
lasting several minutes and we have enough horsepower to process them in parallel
if we have at least one thousand of threads in the pool.
>> We use syslogd's facility to send logs to remote log collectors
>> using traditional syslog protocol (udp/514). Can "linelog" module do that?
>   Yes.

Thanks, I'll take a look.

More information about the Freeradius-Users mailing list