Freeradius consuming a lot of memory > 1.6G
Pshem Kowalczyk
pshem.k at gmail.com
Thu Oct 26 23:46:50 CEST 2006
Hi,
We've built a radius-proxy using freeradius and rlm_perl (with
ithreads). Currently we have the following settings:
thread pool {
start_servers = 20
max_servers = 100
min_spare_servers = 20
max_spare_servers = 50
max_requests_per_server = 500
}
perl {
module = /usr/lib/perl5/rlmPerl.pm
func_authenticate = authenticate
func_authorize = authorize
func_preacct = preacct
func_accounting = accounting
func_checksimul = checksimul
func_pre_proxy = pre_proxy
func_post_proxy = post_proxy
func_post_auth = post_auth
func_xlat = xlat
func_detach = detach
max_clones = 100
start_clones = 20
min_spare_clones = 20
max_spare_clones = 100
cleanup_delay = 5
max_request_per_clone = 100
}
The whole setup works fine (there are two machines, load-balanced).
Every single request is piped to the rlm_perl. The number of threads
(ps -eLf) oscillates around 45-50 on both machines. There are no
dealys, or any problems, except for the huge memory consumption.
Authentication request are simply proxied (with minimal changes to the
packets - filtering out some attributes and setting the others, no db
access), accounting is send to a session database (postgresql) on a
separate machine (no load problems there).
Should freeradius use that amount of memory?
The amount of memory is directly linked to the number of threads -
with 25 threads (in the middle of the night) the memory consumption
drops to about 900M.
perl useses the following modules:
use DBI;
use Digest::JHash qw(jhash);
use IPC::Shareable (':lock');
use Storable;
(all variables shared between perl threads are stored in shared memory
using perl IPC).
So the question is should freeradius use that amount of memory and how
can I decrease that?
regards
pshemko
More information about the Freeradius-Users
mailing list