rlm_perl does not honor start_servers?
Igor Novgorodov
igor at novg.net
Fri Apr 1 15:53:07 CEST 2016
Hello!
I've got latest 3.0.11 FreeRADIUS and Perl authorization module under
rlm_perl.
The server is relatively highly loaded (around 1000 access-requests per
sec).
And although i have "start_servers = 256" and "min_spare_servers = 256"
in the thread pool
configuration, FreeRADIUS does not initialize those threads until the
requests start to hit the daemon.
After some requests in parallel it spawns all required 256 threads and
then this number stays constant.
The problem is that the thread creation in rlm_perl seems to be quite
expensive timewise (or i may be doing something wrong?).
It is clearly seen by testing with radclient - after daemon restart it
is capable of only 30 req/s.
Then, when all the threads come alive - it goes up to 1k req/s and more.
So unless i warm up the server with a few thousand test queries to
create all threads - it gets
overwhelmed for several minutes when the real load shows up, which
causes a lot of warnings
in the logs and massive retransmits from NASes (there are about 900 of
them with lots of clients each),
which is nasty.
So the question is - this behavior is expected? I can, of course, warm
up server after each restart but
it seems irrational for me.
Thanks!
More information about the Freeradius-Users
mailing list