On 24/07/12 13:26, Andrei Petru Mura wrote:
I'm running FreeRADIUS on a PC with a dual CPU of 2 GHz and 2 GB of RAM. It is working with PostgreSQL database. When I perform tests with radperf, running :
radperf -s -f ../users.csv -p 800 -a pap 10.3.1.1 auth radiussomething
where users.csv file contains 10000 user names with password, I get this output:
Total succeeded : 3811 Total failed : 6189 Total no reply : 0 Total time (s) : 10.588 Packets/s : 944 Response times: < 10 usec : 0 < 100 usec : 0 < msec : 0 < 10 msec : 1 < 0.1s : 3758 < s : 5897 < 10s : 344 < 100s : 0 (the result is a good one taking in account the packets amount processed per second - related to more tests that I did). I would need a sever able to manage a much greater amount of users ( > 50000, up to 1000000). But for now I'm interested how to get the server working well with ~(50000<->100000) users.
The number of users isn't too important, I suspect. What matters is the authentication rate (number of auths/sec) and the accounting rate (acct/sec). You also need to ensure your SQL database can reply sufficiently quickly. This might depend on the number of users, since SQL query performance is a complex mixture of table size, indexing and load. 1000 auths/sec is quite a lot. It implies you need to perform 1000 SQL queries/sec (at LEAST). Try this: convert your SQL users into a "users" text file, like so: username Cleartext-Password := "password" ...and disable SQL, then re-run the test. I think it will perform a lot better. If so, then you know that the bottleneck is SQL, and that you should focus your efforts there.
What configuration do I need for this (I mean hardware configuration)?
You should really have >1 server, for resilience if nothing else. If you are using SQL you will need fast disks, with a big cache.
What are the best recommended improvements that should be done? Would JRadius module help on improving performance? (I'm not familiar about JRadius).
I seriously doubt it. Why do you think JRadius would help?