How many NAS kann radius take?

Anja Ruckdaeschel Anja.Ruckdaeschel at rz.uni-regensburg.de
Thu Feb 13 11:03:36 CET 2014


Hi there!

Having some performance trouble at our campus site with lots of "Discarding Duplicate request" errors.

Our setup is freeradius 2.2.0 with ldap and sql.  ; Intel Xeon CPU E5630 2.53GHz 2CPUs with 8 Core (hyperthreading enabled), 24 GB RAM

sql is only used to determine the replied VLAN-ID from a very small read only table by a local  mysql instance, so
no performance or connection issues here (we do not do accounting into the db or anything like that).
ldap works fast.
And there are no messages from rlm_ldap or rlm_sql which indicate trouble with
sql or ldap connections

So we kind of sorted out the "classic causes" for slowing down radius ....


If our people move over the campus with ~3.000 smartphones with actvated wifi, request numbers increase when they enter
new wi-fi cells and trouble begins: 
There is barely an auth ok or incorrect in the log but lots of discarding duplicates messages 
and cpu load is going up to 120 and a higher number of messages like 

Tue Feb 11 18:22:37 2014 : Error: rlm_eap: No EAP session matching the State variable.

appears in the log.

I can see that there are a few messages like

Tue Feb 11 09:26:50 2014 : Info: WARNING: Module rlm_preprocess became unblocked for request 241193

and

Tue Feb 11 09:26:51 2014 : Info: WARNING: Module rlm_eap became unblocked for request 241193

at the time when the problem appears. Can this point to the preprocess module where it gets "slow", with eap getting blocked as a consequence of a blocked preprocess module?
We have a lot of NAS in our environment: there are over 2200 NAS in total in clients.conf, which are  350 heavily used WLAN access points (auth only, no acct)
and switches which do a administrative login only every 5 min, and ~ 10 VPN controllers.

As having so many NAS, preprocess has to do a max of 2200 expansion like 

Fri Feb  7 15:41:16 2014 : Debug: [preprocess]  expand: %{Client-IP-Address} -> x.x.x.x

in order to determine the allowed client. That are ~26.400 checks for preprocess in one peap/mschap 
request for example (~12 request-packtes x NAS).

Is there some kind of "recommened maximum number of NAS" for one instance of freeradius?


Here is our thread_pool and request config:

max_request_time = 120
cleanup_delay = 5
#256 x NAS (By the way: "This should be 256 multiplied by the number of clients.
#  e.g. With 4 clients, this number should be 1024. " Is client in this contenxt supplicant or NAS?)

max_requests = 563200 

thread pool {
        start_servers = 5
        max_servers = 128
       min_spare_servers = 3
        max_spare_servers = 128
       #       max_queue_size = 65536
       max_requests_per_server = 0
 }


Thanks for your help
Kind regards Anja






More information about the Freeradius-Users mailing list