Hi,
Yep. Last "production" load test I did was with Postgresql 7.x, FreeRADIUS 1.0 and my pgsql-voip.conf was on a 4GB table and I was happily pushing a steady 800 Accounting requests per second on a single CPU P4 3.0 desktop machine with a single 7200rpm PATA disk. This was around 5 years ago.
5 years ago...Pentium 4. hmmm. that would have been the rather poor Northwood P4 processor too - several functions missing from the core, small L2 cache and slow FSB.
My current production servers are single Opteron CPU SunFire 2100 machines with SATA disks. The backend DBs are the same. The RADIUS boxes never break 3% CPU load. The Postgresql servers are IO bound by the SATA disks....
dirty thought....if these are mainly queries then you *could* do the following (depending on memory and table size).... simpyl create a 4Gb tmpfs partition and use that for the database - with the real disk-based database being a synchronized DB.
Basically on a properly designed DB server, with the correct indexes for your data you are always going to be IO bound for any type of RADIUS requests that dont involve EAP (expensive crypto operations)
...and even those *might* be offloaded onto an SSL crypto acceleration card alan