]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Create Performance
authoraBainbridge11 <113794078+aBainbridge11@users.noreply.github.com>
Tue, 23 Jul 2024 18:16:04 +0000 (14:16 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 8 Aug 2024 21:36:54 +0000 (17:36 -0400)
doc/antora/modules/reference/pages/performance.adoc [new file with mode: 0644]

diff --git a/doc/antora/modules/reference/pages/performance.adoc b/doc/antora/modules/reference/pages/performance.adoc
new file mode 100644 (file)
index 0000000..d4a83a8
--- /dev/null
@@ -0,0 +1,39 @@
+= Performance
+
+When all configuration and policies are stored in RAM, the server is
+capable of performing 10's of 1000's of PAP authentications per second
+on commodity hardware. Specific performance capabilities depend on a
+number of factors, including:
+
+-   Database usage (flat-text files, LDAP, SQL)
+-   RAM, CPU, disk, network speed and latencies
+-   Use of EAP (SSL has significant CPU overhead)
+-   complexity of policies
+
+In general, any commodity hardware will be sufficient for systems up to
+a few hundred thousand users. For a larger number of users, issues such
+as high-availability and fail-over will control the choice of hardware.
+Once sufficient hardware has been deployed to meet high-availability
+requirements, RADIUS performance will not be an issue.
+
+Some commercial servers claim surprisingly high numbers for their
+performance. In our tests, the security overhead of RADIUS (MD5 hashes)
+can account for up to fifty percent (50%) of the time spent processing a
+packet. Any claims that a product has more than double the performance
+of a tuned FreeRADIUS installation are best viewed with skepticism.
+
+The choice of database can strongly affect server performance. Each
+accounting packet may result in one or more write requests to a
+database. The database performance then limits how many accounting
+packets can be processed, and therefore limits the performance of the
+RADIUS server. Many database cannot perform more than a few hundred to a
+few thousand writes per second. This database limitation in turn lowers
+RADIUS performance to about the same number of packets per second.
+
+The best way to determine the performance of a server is via testing.
+FreeRADIUS comes with a tool called `radclient`, which can be used for
+basic peformance testing. A third party tool called [RadPerf]() is also
+available. It uses the FreeRADIUS libraries to implement the RADIUS
+portion, and then builds more complex functionality on top of that. It
+can be used to simulate user logins, and can auto-generate accounting
+packets for user sessions.