(RADIATOR) Re: Performance Issue

Hugh Irvine hugh at open.com.au
Sun Feb 19 23:27:38 CST 2006


Hello Andrew -

You should add a Log FILE clause to your configuration file, with  
LogMicroseconds enabled (requires Time-Hires from CPAN).

This will show you exactly how long each processing step is taking in  
a trace 4 debug.

If you send me a copy of the debug I will take a look.

regards

Hugh




On 20 Feb 2006, at 16:03, Andrew Weighell wrote:

>
> Hi Guys,
>
> I am currently evaluating Radiator as a possible replacement for  
> our current solution. However, I have come across a small issue  
> relating to the performance of Radiator or perhaps Active Perl. I  
> am using a Radius test client (not radpwtst) to send just an Auth  
> request to a Radiator, this test client works fine with our current  
> solution so I don't believe the client could be causing the delay.
>
> Radiator has been setup on a Dual Xeon 3.4GHz with 2GB of RAM  
> (running Microsoft Windows Server 2003 Standard Edition),  
> connecting to a MSSQL DB. A profile running on our DB shows the  
> database is responding instantly with no apparent delays but  
> Radiator is averaging 150-200ms per request which is quite bad when  
> you are processing hundreds of requests a minute or more. Is there  
> any optimising of Active PERL or Radiator that can increase this  
> performance, to around say only 16ms or less per request??
>
> My config file is below:
>
> Foreground
> LogStdout
> LogDir		.
> DbDir		.
> Trace		1
>
> # You will probably want to change this to suit your site.
> <Client XXX.XX.XXX.X>
> 	Secret	mysecret
> </Client>
>
> # You can put client details in a database table
> # and get their details from there with something like this:
> <ClientListSQL>
> 	DBSource	dbi:ODBC:DBServer
> 	DBUsername	User
> 	DBAuth	test
>
> 	GetClientQuery select IPAddress, Secret from radius.dbo.servers
>
> 	# If RefreshPeriod is set to non-zero, it specifies the period in  
> seconds that the client list will
> 	# be refreshed by rereading the database. Each RefreshPeriod,
> 	# any Clients previously created by this ClientList are
> 	# cleared and a new set of clients read from the database.
> 	# Clients defined in the configuration file will not be clobbered.
> 	# The same effect can be got by signalling the process with with  
> SIGHUP
> 	#RefreshPeriod 600
> </ClientListSQL>
>
> # This will authenticate users from SUBSCRIBERS
> <Realm DEFAULT>
>      AuthByPolicy ContinueWhileReject
>     <AuthBy SQL>
> 	# Adjust DBSource, DBUsername, DBAuth to suit your DB
>
> 	DBSource	dbi:ODBC:DBServer
> 	DBUsername	User
> 	DBAuth	test
>
> 	NoDefault
>
> 	AuthSelect EXEC AuthCustomer '%{User-Name}','%{Radius-Attribute}',1
>
> 	AuthColumnDef 0, User-Password, check
> 	AuthColumnDef 1, GENERIC, check
> 	AuthColumnDef 2, GENERIC, reply
>
> 	AccountingTable CALLS
>
> 	AcctColumnDef NASIdentifier,NAS-IP-Address
> 	AcctColumnDef NASPort,NAS-Port,integer
> 	AcctColumnDef AcctSessionID,Acct-Session-Id
> 	AcctColumnDef AcctStatusType,Acct-Status-Type
> 	AcctColumnDef CallDate,Timestamp,integer
> 	AcctColumnDef UserName,User-Name
> 	AcctColumnDef AcctDelayTime,Acct-Delay-Time,integer
> 	AcctColumnDef AcctSessionTime,Acct-Session-Time,integer
> 	AcctColumnDef FramedAddress,Framed-IP-Address
> 	AcctColumnDef AcctInputOctets,Acct-Input-Octets,integer
> 	AcctColumnDef AcctOutputOctets,Acct-Output-Octets,integer
> 	AcctColumnDef CallerID,Calling-Station-Id
>
>     </AuthBy>
>     <AuthBy SQL>
> 	# Adjust DBSource, DBUsername, DBAuth to suit your DB
>
> 	DBSource	dbi:ODBC:DBServer
> 	DBUsername	User
> 	DBAuth	test
>
> 	NoDefault
> 	NoCheckPassword
>
> 	AuthSelect EXEC AuthCustomer '%{User-Name}','%{Radius-Attribute}',2
>
> 	AuthColumnDef 0, User-Password, check
> 	AuthColumnDef 1, GENERIC, reply
>
> 	AccountingTable CALLS
>
> 	AcctColumnDef NASIdentifier,NAS-IP-Address
> 	AcctColumnDef NASPort,NAS-Port,integer
> 	AcctColumnDef AcctSessionID,Acct-Session-Id
> 	AcctColumnDef AcctStatusType,Acct-Status-Type
> 	AcctColumnDef CallDate,Timestamp,integer
> 	AcctColumnDef UserName,User-Name
> 	AcctColumnDef AcctDelayTime,Acct-Delay-Time,integer
> 	AcctColumnDef AcctSessionTime,Acct-Session-Time,integer
> 	AcctColumnDef FramedAddress,Framed-IP-Address
> 	AcctColumnDef AcctInputOctets,Acct-Input-Octets,integer
> 	AcctColumnDef AcctOutputOctets,Acct-Output-Octets,integer
> 	AcctColumnDef CallerID,Calling-Station-Id
>
>     </AuthBy>
> </Realm>
>
>
> Any help on this would be greatly appreciated.
>
>
> Regards,
> Andrew
> ____________________________________
>
> Andrew Weighell
> Database Administration Team
> www.westnet.com.au
> Westnet - Voted Number 1 ISP in Customer Satisfaction two years  
> running
>
> Phone: (08) 6263 6300    Fax: (08) 6263 6366
> For more contact information visit our contact us webpage.
>

NB:

Have you read the reference manual ("doc/ref.html")?
Have you searched the mailing list archive (www.open.com.au/archives/ 
radiator)?
Have you had a quick look on Google (www.google.com)?
Have you included a copy of your configuration file (no secrets),
together with a trace 4 debug showing what is happening?

-- 
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows, MacOS X.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.
-
CATool: Private Certificate Authority for Unix and Unix-like systems.


--
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.


More information about the radiator mailing list