rlm_perl , unlang and Exec-Wait with Perl
Hi, How could one compare between Rlm_perl and Unlang(or any other relevant module) for performance. I've read in http://wiki.freeradius.org/index.php/Rlm_perl that rlm_perl supports muliple instances and threads allowing faster processing. How is it with policies done using unlang? ......Faster, slower or no significant diff? As described in the same site 'Exec-Program-Wait' with perl scripts is slower than rlm_perl. Would like to have a clearer view about these points. Thanks, rg
Hi,
How could one compare between Rlm_perl and Unlang(or any other relevant module) for performance.
I've read in http://wiki.freeradius.org/index.php/Rlm_perl
that rlm_perl supports muliple instances and threads allowing faster processing.
How is it with policies done using unlang? ......Faster, slower or no significant diff?
As described in the same site 'Exec-Program-Wait' with perl scripts is slower than rlm_perl.
Would like to have a clearer view about these points.
unlang is great/fantastic for doing stuff that is trivial and needs to be done 'in the server' - if you need to access outside facilities - eg get stuff from other resources, read contents from files etc then PERL gives you more access. we've got installations running with 128 perl threads fine for almost a year now. the server told us how many threads it needed as when we didnt give it enough, it complained! ;-) my opinion. of course. alan
Thanks a lot for sharing your experience and ideas Alan. If things are done mainly using SQL, for eg. IP address management, then unlang seems to be doing more or less the same work(easily) a sophisticated Perl script could do. However my question is about performance and about how fast & scalable this kind of a setup compared to a Perl based system. Any ideas please? rg. On Thu, Apr 17, 2008 at 8:19 PM, <A.L.M.Buxey@lboro.ac.uk> wrote:
Hi,
How could one compare between Rlm_perl and Unlang(or any other relevant module) for performance.
I've read in http://wiki.freeradius.org/index.php/Rlm_perl
that rlm_perl supports muliple instances and threads allowing faster processing.
How is it with policies done using unlang? ......Faster, slower or no significant diff?
As described in the same site 'Exec-Program-Wait' with perl scripts is slower than rlm_perl.
Would like to have a clearer view about these points.
unlang is great/fantastic for doing stuff that is trivial and needs to be done 'in the server' - if you need to access outside facilities - eg get stuff from other resources, read contents from files etc then PERL gives you more access. we've got installations running with 128 perl threads fine for almost a year now. the server told us how many threads it needed as when we didnt give it enough, it complained! ;-)
my opinion. of course.
alan - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Hi,
If things are done mainly using SQL, for eg. IP address management, then unlang seems to be doing more or less the same work(easily) a sophisticated Perl script could do.
However my question is about performance and about how fast & scalable this kind of a setup compared to a Perl based system.
Any ideas please?
I could envisage most people being able to port their exec and PERL into the unlang framework. we havent, so can't give you a direct answer. however, you COULD do the following run up a test radiusd server. use the doc/performance-testing document as a guide to help with the following 1) create a simply PERL that does a DB lookup and return attribute thing with the list if users 2) create an unlang config that does the same 3) benchmark them in our PERL we do more than just 'SELECT' - we open a log file, a debug log file etc and dump stuff into there, we also use other values from the database to do authorization checks and return values. depending on the call and request, the return value changes etc. alan
rsg wrote:
However my question is about performance and about how fast & scalable this kind of a setup compared to a Perl based system.
Perl will almost always be slower, for the simple reason that it has a lot more work to do in order to set up the interpreter, etc. for every request. The "unlang" policies are intended for *simple* policies. *Complex* ones usually require a real language. To be honest, speed in a RADIUS server is almost irrelevant. The overwhelming majority of time is spent (1) doing SSL setup if you're doing EAP, and/or (2) database queries. Perl versus "unlang" will have minimal difference in performance if you're querying a database. Alan DeKok.
My particular problem is to compare IP address management(Authorization) (1) 'solely' based on Perl VS (2) SQLIPPOOL + unlang Does it mean that SQLIPPOOL isn't a good choice for large scale deployments requiring scalability & faster response time? On Fri, Apr 18, 2008 at 11:38 AM, Alan DeKok <aland@deployingradius.com> wrote:
rsg wrote:
However my question is about performance and about how fast & scalable this kind of a setup compared to a Perl based system.
Perl will almost always be slower, for the simple reason that it has a lot more work to do in order to set up the interpreter, etc. for every request.
The "unlang" policies are intended for *simple* policies. *Complex* ones usually require a real language.
To be honest, speed in a RADIUS server is almost irrelevant. The overwhelming majority of time is spent (1) doing SSL setup if you're doing EAP, and/or (2) database queries.
Perl versus "unlang" will have minimal difference in performance if you're querying a database.
Alan DeKok.
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
rsg wrote:
My particular problem is to compare
IP address management(Authorization) (1) 'solely' based on Perl VS (2) SQLIPPOOL + unlang
Does it mean that SQLIPPOOL isn't a good choice for large scale deployments requiring scalability & faster response time?
No.
On Fri, Apr 18, 2008 at 11:38 AM, Alan DeKok <aland@deployingradius.com> wrote:
rsg wrote:
However my question is about performance and about how fast & scalable this kind of a setup compared to a Perl based system.
Perl will almost always be slower, for the simple reason that it has a lot more work to do in order to set up the interpreter, etc. for every request.
The "unlang" policies are intended for *simple* policies. *Complex* ones usually require a real language.
To be honest, speed in a RADIUS server is almost irrelevant. The overwhelming majority of time is spent (1) doing SSL setup if you're doing EAP, and/or (2) database queries.
Perl versus "unlang" will have minimal difference in performance if you're querying a database.
Alan DeKok.
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
participants (3)
-
A.L.M.Buxey@lboro.ac.uk -
Alan DeKok -
rsg