FreeRadius msg processing rate
Hello, I have configured FreeRadius server with MySQL.I bombarded the server with Radius Accounting START and STOP msgs randomly with 178461 msgs in 1 minute(~3000 msgs/sec).I got response back of 23658 msgs.I have noted the UDP msg stats using (netstat -s).They are as below-- 67137 packets received 0 packets to unknown port received 111680 packet receive errors 23710 packets sent Note that the initial counts were all 0.
From the stats it seems that -- packets received + packet receive errors = ~msgs sent packets sent = ~response msgs received N.B:- the small anomalies in the counts may be due to unprocessed msgs in the socket buffers.
In other words though the msg sending rate was ~3000 msgs/sec,the msg processing rate was ~400 msgs/sec. Can you comment on this?We need to process over 3000 msgs/sec.So is FreeRadius with MySQL a right choice?Please suggest. Thanks and Regards Sourav
Sourav Chakraborty wrote:
I have configured FreeRadius server with MySQL.I bombarded the server with Radius Accounting START and STOP msgs randomly with 178461 msgs in 1 minute(~3000 msgs/sec).
First question: Can your database do 3000 writes/s? If not, this test is pointless. All you're doing is testing how well the system works when it is completely overloaded... which is "not well, at all."
I got response back of 23658 msgs.I have noted the UDP msg stats using (netstat -s).They are as below-- 67137 packets received 0 packets to unknown port received 111680 packet receive errors 23710 packets sent Note that the initial counts were all 0.
From the stats it seems that --
You *could* look at the stats the server keeps. See raddb/sites-available/status for examples and documentation.
packets received + packet receive errors = ~msgs sent packets sent = ~response msgs received N.B:- the small anomalies in the counts may be due to unprocessed msgs in the socket buffers.
In other words though the msg sending rate was ~3000 msgs/sec,the msg processing rate was ~400 msgs/sec.
Which says that the DB is likely a bottleneck.
Can you comment on this?We need to process over 3000 msgs/sec.So is FreeRadius with MySQL a right choice?Please suggest.
Do you really need 3000 accounting packets/s? This is the equivalent of 2 *million* users online all of the time, with an average session length of 30 minutes. If you have 2 million users, you can't afford to run just one RADIUS + SQL server. You will want at least 2 for fail-over, maybe more. In short, this test was pretty much pointless: 1) it tested loads that you are likely to *never* see in the real world 2) it tested loads that the database is *known* to not handle. Again, what are you trying to prove here? Alan DeKok.
O/H Sourav Chakraborty έγραψε:
Hello, I have configured FreeRadius server with MySQL.I bombarded the server with Radius Accounting START and STOP msgs randomly with 178461 msgs in 1 minute(~3000 msgs/sec).I got response back of 23658 msgs.I have noted the UDP msg stats using (netstat -s).They are as below-- 67137 packets received 0 packets to unknown port received 111680 packet receive errors 23710 packets sent Note that the initial counts were all 0. From the stats it seems that -- packets received + packet receive errors = ~msgs sent packets sent = ~response msgs received N.B:- the small anomalies in the counts may be due to unprocessed msgs in the socket buffers. In other words though the msg sending rate was ~3000 msgs/sec,the msg processing rate was ~400 msgs/sec. Can you comment on this?We need to process over 3000 msgs/sec.So is FreeRadius with MySQL a right choice?Please suggest. Thanks and Regards Sourav ------------------------------------------------------------------------
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html You haven't said anything about the server hardware or about freeradius/mysql configuration. How is the disk behaving with 3000 writes/sec? There are numerous configuration/processing choises that can make a big difference in the server throughput, especially in the case of accounting (where you are performing writes and not reads). And as Alan pointed out, 3000 messages/second are way too much. This kind of burst can only happen if you simultaneously reboot a few LNS with thousands of ADSL users and wait for them to all come online in the same time.
-- Kostas Kalevras - Network Operations Center National Technical University of Athens http://kkalev.wordpress.com
The machine on which FreeRadius is running had Intel(R) Pentium(R) 4 CPU 2.40GHz.It had MySQL server version: 5.0.18 installed on it(without clustering). How will the number of reads/writes per second vary if I use a highend machine for hosting the MySQL DB?Is there any performance metrics for the same? rgds Sourav ----- Original Message ----- From: "Kostas Kalevras" <kkalev@noc.ntua.gr> To: "FreeRadius developers mailing list" <freeradius-devel@lists.freeradius.org> Sent: Tuesday, February 03, 2009 3:25 PM Subject: Re: FreeRadius msg processing rate
O/H Sourav Chakraborty έγραψε:
Hello, I have configured FreeRadius server with MySQL.I bombarded the server with Radius Accounting START and STOP msgs randomly with 178461 msgs in 1 minute(~3000 msgs/sec).I got response back of 23658 msgs.I have noted the UDP msg stats using (netstat -s).They are as below-- 67137 packets received 0 packets to unknown port received 111680 packet receive errors 23710 packets sent Note that the initial counts were all 0. From the stats it seems that -- packets received + packet receive errors = ~msgs sent packets sent = ~response msgs received N.B:- the small anomalies in the counts may be due to unprocessed msgs in the socket buffers. In other words though the msg sending rate was ~3000 msgs/sec,the msg processing rate was ~400 msgs/sec. Can you comment on this?We need to process over 3000 msgs/sec.So is FreeRadius with MySQL a right choice?Please suggest. Thanks and Regards Sourav ------------------------------------------------------------------------
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html You haven't said anything about the server hardware or about freeradius/mysql configuration. How is the disk behaving with 3000 writes/sec? There are numerous configuration/processing choises that can make a big difference in the server throughput, especially in the case of accounting (where you are performing writes and not reads). And as Alan pointed out, 3000 messages/second are way too much. This kind of burst can only happen if you simultaneously reboot a few LNS with thousands of ADSL users and wait for them to all come online in the same time.
-- Kostas Kalevras - Network Operations Center National Technical University of Athens http://kkalev.wordpress.com
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html
Sourav Chakraborty wrote:
The machine on which FreeRadius is running had Intel(R) Pentium(R) 4 CPU 2.40GHz.It had MySQL server version: 5.0.18 installed on it(without clustering).
That's nice, but doesn't matter too much.
How will the number of reads/writes per second vary if I use a highend machine for hosting the MySQL DB?Is there any performance metrics for the same?
This is a question for the MySQL mailing lists. And you still haven't said *why* you think you need 3000 packets/s. You seem intent on building a solution without a clear statement of the problem. Alan DeKok.
On Wed 04 Feb 2009, Sourav Chakraborty wrote:
The machine on which FreeRadius is running had Intel(R) Pentium(R) 4 CPU 2.40GHz.It had MySQL server version: 5.0.18 installed on it(without clustering).
How will the number of reads/writes per second vary if I use a highend machine for hosting the MySQL DB?Is there any performance metrics for the same?
Hi Sourav I believe I have already answered your question a while ago, but let me do so again. When using an SQL backend with FreeRADIUS, the SQL backend is almost ALWAYS the bottleneck. FreeRADIUS itself scales very well on its own. This means that you will need to learn a lot more about SQL if you don't already know it. For the type of loads you say you have you will need.. * At least a dedicated DB server (preferably a cluster). You need to talk to professionals who understand the DB you are planning to deploy (I prefer Postgresql but it appears you have already decided on MySQL) to talk about scaling to 3000+ writes per second. This will most likely mean a Quad-CPU machine with 5+ SAS disks in a RAID5 (or 6 or 10) array setup. * Probably a secondary FreeRADIUS server also in case of failure of the original. This is no different to any other scaling issue with databases. Talk to a database professional. FreeRADIUS has very simple DB needs. For each accounting packet it does at least one write and possibly several ready (depending on config) and for each Auth packet it may do up to 4 or 5 reads (and possibly a couple of writes) depending on your FreeRADIUS config. This means that your DB infrastructure needs to be VERY solid... Regards -- Peter Nixon http://peternixon.net/
participants (4)
-
Alan DeKok -
Kostas Kalevras -
Peter Nixon -
Sourav Chakraborty