rlm_perl with huge load (~1000-1500 request per minute)

A.L.M.Buxey at lboro.ac.uk A.L.M.Buxey at lboro.ac.uk
Mon Feb 11 16:43:22 CET 2008


Hi,

> Hello!
> 
> i use freeradiusd 1.7, rlm_perl with thread conf:
> 
> thread pool {
>         start_servers =  100
>         max_servers = 1500
>         min_spare_servers = 1
>         max_spare_servers = 10
>         max_requests_per_server = 10
> }
> 
> rlm_sql uses mysql.
> 
> All works fine, but sometime, at moment with high load:
> 
> Error: Discarding duplicate request from client nas_4:63429 - ID: 154 due to unfinished request 2176280
> 
> and radiusd like "frozen", take 99% of CPU time, and not response for
> client's request.
> 
> FreeBSD 6.3, Hardware is adequate - 2xXeon with 2 Gb Ram.
> 
> any ideas?

yep - your database cant keep up with either the authentication traffic,
the accounting traffic or both.

try using sql_log for the accounting - to take it out of 100% realtime
for each incoming packet.


also your config looks a bit wonky.

> thread pool {
>         start_servers =  100
>         max_servers = 1500
>         min_spare_servers = 1
>         max_spare_servers = 10
>         max_requests_per_server = 10
> }


start servers = 100
max spare servers = 10

so the first thing it has to do it kill a load off(!) - set the spare to 100.
how many SQL threads are you running?

alan



More information about the Freeradius-Users mailing list