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