[RADIATOR] Memory leak with Radiator?
Heikki Vatiainen
hvn at open.com.au
Mon Oct 3 06:05:06 CDT 2011
Thanks, Michael. That's a very good point about SessionDatabase.
Especially in Farm environment NULL SessionDatabase is a good idea if
simultanous use tracking is not needed. If it is needed, then the farm
workers should use for example SQL for common storage.
The latest ref.pdf now has a note about using Farm with protocols that
need state information. The example there is EAP (PEAP, TTLS, etc.) but
SessionDatabase could be mentioned there too.
Thanks again!
On 09/30/2011 03:41 PM, Michael wrote:
>
> I noticed an increase of memory usage over time as well on radiusd. Quite a long time though, but an increase non-the-less. 10% right now for example. When I stop/start the service, it drops and remains at about 0.5% again. I have 4 identically synced config servers, where 2 are constantly used, and 2 are not (backups). The 2 constantly used are the ones that have the increase of memory. The increase of memory is noticeable, but radiator does continue to work very well. Since this doesn't cause issues, it's not really important to me at this time, but i just thought i would mention it.
>
> Using MySQL for user authentication data, and auth/accounting logs.
>
> The one thing i would think could cause this is the session db, which i do not use. I have:
> <SessionDatabase NULL>
> Identifier NULL
> </SessionDatabase NULL>
> And then reference it by "SessionDatabase NULL" in all my Handler's.
>
> My config is quite long as I handle several different services, and multiple ways of authenticating so I can't paste my config here.
>
>
>
> On 11-09-30 06:44 AM, Heikki Vatiainen wrote:
>> On 09/30/2011 10:35 AM, Elias wrote:
>>
>> Hello Elias,
>>
>>> We're running RADIATOR with Farms and have noticed that the RADIATOR
>>> processes eat up huge chunks of memory. Has anybody else experienced this?
>>
>> Memory leaks are very rare but certainly possible. Can you reply with
>> your configuration (no secrets or passwords needed).
>>
>> The growing heap size hints this is a problem with dynamically allocated
>> memory. Seeing the configuration, the possible hooks and learning more
>> about what kind of traffic Radiator handles, would help diagnosing the
>> problem.
>>
>> The pmap output also indicates you are using DBD::Oracle. You may want to
>>
>> check http://search.cpan.org/~pythian/DBD-Oracle-1.30/
>>
>> and see if the memory leaks listed in the change log are relevant to
>> your configuration.
>>
>> Thanks!
>> Heikki
>>
>>
>>> last pid: 27248; load avg: 3.88, 3.97, 3.98; up
>>> 196+02:04:57
>>> 15:09:23
>>> 51 processes: 45 sleeping, 1 zombie, 5 on cpu
>>> CPU states: 73.9% idle, 24.1% user, 2.0% kernel, 0.0% iowait, 0.0% swap
>>> Memory: 8184M phys mem, 128M free mem, 10G swap, 4851M free swap
>>>
>>> PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
>>> 16445 root 1 10 0 2410M *1393M* sleep 308.1H 84.69% radiusd
>>> 16447 root 1 10 0 2410M *1281M* cpu 307.4H 81.52% radiusd
>>> 16443 root 1 10 0 2414M *1312M* cpu 308.4H 80.92% radiusd
>>> 16446 root 1 10 0 2398M *1236M* cpu 306.9H 79.59% radiusd
>>> 16444 root 1 10 0 2394M *1305M* cpu 306.7H 75.31% radiusd
>>>
>>> The RADIUS services do not crash or anything, but its just that our low
>>> memory alert keeps on appearing every week or so. Restarting the
>>> RADIATOR daemon gets memory released again.
>>>
>>>
>>>
>>>
>>> root at radauth01 # pmap 16444
>>> 16444: /usr/bin/perl /opt/radiator/radiusd -config_file
>>> /usr/local/etc/radius
>>> 00010000 960K r-x-- /usr/local/bin/perl
>>> 0010E000 48K rwx-- /usr/local/bin/perl
>>> 0011A000 24K rwx-- [ heap ]
>>> 00120000 2944K rwx-- [ heap ]
>>> *00400000 2428928K rwx-- [ heap ]*
>>> FDA00000 1728K r-x-- /opt/oracle/lib32/libnnz10.so
>>> FDBB0000 56K r-x-- /opt/oracle/lib32/libnnz10.so
>>> FDBCC000 16K rwx-- /opt/oracle/lib32/libnnz10.so
>>> FDBD0000 128K rwx-- dev:32,13 ino:1539
>>> FDBF0000 8K rwx-- /opt/oracle/lib32/libnnz10.so
>>> FDC00000 12288K r-x-- /opt/oracle/lib32/libclntsh.so.10.1
>>> FE800000 2752K r-x-- dev:32,13 ino:1627
>>> FEAB0000 56K r-x-- /opt/oracle/lib32/libclntsh.so.10.1
>>> FEACC000 16K rwx-- /opt/oracle/lib32/libclntsh.so.10.1
>>> FEAD0000 448K rwx-- dev:32,13 ino:1627
>>> FEB40000 16K rwx-- dev:32,13 ino:1627
>>> FEB44000 56K rwx-- /opt/oracle/lib32/libclntsh.so.10.1
>>> FEBF0000 8K rwx-- [ anon ]
>>> FEC00000 40K r-x-- /usr/local/lib/libgcc_s.so.1
>>> FEC18000 8K rwx-- /usr/local/lib/libgcc_s.so.1
>>> FEC20000 48K r-x-- /usr/lib/libz.so.1
>>> FEC3A000 16K rwx-- /usr/lib/libz.so.1
>>> FEC50000 192K r-x-- /usr/local/lib/mysql/libmysqlclient.so.14.0.0
>>> FEC80000 32K r-x-- /usr/local/lib/mysql/libmysqlclient.so.14.0.0
>>> FEC96000 40K rwx-- /usr/local/lib/mysql/libmysqlclient.so.14.0.0
>>> FECA0000 64K rwx-- dev:32,11 ino:152615
>>> FECB0000 56K rwx-- /usr/local/lib/mysql/libmysqlclient.so.14.0.0
>>> FECD0000 64K r-x--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBD/mysql/mysql.so
>>> FECE0000 32K r-x--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBD/mysql/mysql.so
>>> FECF6000 24K rwx--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBD/mysql/mysql.so
>>> FED10000 376K r---R dev:32,13 ino:1490
>>> FED80000 8K r-x-- /lib/libmd5.so.1
>>> FED92000 8K rwx-- /lib/libmd5.so.1
>>> FEDA0000 8K rwx-- [ anon ]
>>> FEDB0000 24K r-x-- /lib/librt.so.1
>>> FEDC6000 8K rwx-- /lib/librt.so.1
>>> FEDD0000 32K r-x-- /lib/libaio.so.1
>>> FEDE0000 16K r-x-- /lib/libpthread.so.1
>>> FEDE8000 8K rwx-- /lib/libaio.so.1
>>> FEDF8000 16K r-x-- /lib/libthread.so.1
>>> FEE00000 24K r-x-- /lib/libgen.so.1
>>> FEE16000 8K rwx-- /lib/libgen.so.1
>>> FEE20000 8K r-x-- /lib/libkstat.so.1
>>> FEE32000 8K rwx-- /lib/libkstat.so.1
>>> FEE40000 128K r-x--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBD/Oracle/Oracle.so
>>> FEE60000 16K r-x--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBD/Oracle/Oracle.so
>>> FEE72000 8K rwx--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBD/Oracle/Oracle.so
>>> FEE80000 24K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/List/Util/Util.so
>>> FEE94000 8K rwx--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/List/Util/Util.so
>>> FEEA0000 64K r-x--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI/DBI.so
>>> FEEB0000 48K r-x--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI/DBI.so
>>> FEECA000 16K rwx--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/DBI/DBI.so
>>> FEEE0000 24K r-x-- /lib/nss_files.so.1
>>> FEEF6000 8K rwx-- /lib/nss_files.so.1
>>> FEF00000 8K r-x-- /usr/lib/libsched.so.1
>>> FEF10000 64K rwx-- [ anon ]
>>> FEF30000 16K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/IO/IO.so
>>> FEF42000 8K rwx--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/IO/IO.so
>>> FEF50000 8K rwx-- [ anon ]
>>> FEF60000 24K r-x--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/Socket6/Socket6.so
>>> FEF74000 8K rwx--
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/Socket6/Socket6.so
>>> FEF80000 8K rwx-- [ anon ]
>>> FEF90000 8K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Sys/Hostname/Hostname.so
>>> FEFA0000 8K rwx--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Sys/Hostname/Hostname.so
>>> FEFB0000 16K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Fcntl/Fcntl.so
>>> FEFC2000 8K rwx--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Fcntl/Fcntl.so
>>> FEFD0000 16K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/File/Glob/Glob.so
>>> FEFE2000 8K rwx--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/File/Glob/Glob.so
>>> FEFF0000 16K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Time/HiRes/HiRes.so
>>> FF002000 8K rwx--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Time/HiRes/HiRes.so
>>> FF010000 64K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/POSIX/POSIX.so
>>> FF020000 56K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/POSIX/POSIX.so
>>> FF03C000 8K rwx--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/POSIX/POSIX.so
>>> FF050000 8K rwx-- [ anon ]
>>> FF060000 24K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Socket/Socket.so
>>> FF074000 8K rwx--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Socket/Socket.so
>>> FF080000 832K r-x-- /lib/libc.so.1
>>> FF150000 32K r-x-- /lib/libc.so.1
>>> FF168000 32K rwx-- /lib/libc.so.1
>>> FF170000 8K rwx-- /lib/libc.so.1
>>> FF180000 640K r-x-- /lib/libm.so.2
>>> FF220000 40K r-x-- /lib/libm.so.2
>>> FF238000 32K rwx-- /lib/libm.so.2
>>> FF250000 16K r-x--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Digest/MD5/MD5.so
>>> FF262000 8K rwx--
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris/auto/Digest/MD5/MD5.so
>>> FF270000 8K rwxs- [ anon ]
>>> FF280000 576K r-x-- /lib/libnsl.so.1
>>> FF310000 8K r-x-- /lib/libnsl.so.1
>>> FF322000 40K rwx-- /lib/libnsl.so.1
>>> FF32C000 24K rwx-- /lib/libnsl.so.1
>>> FF340000 8K r-x-- /platform/sun4v/lib/libc_psr.so.1
>>> FF350000 24K rwx-- [ anon ]
>>> FF360000 8K rwx-- [ anon ]
>>> FF370000 48K r-x-- /lib/libsocket.so.1
>>> FF38C000 8K rwx-- /lib/libsocket.so.1
>>> FF3A0000 8K r-x-- /lib/libdl.so.1
>>> FF3B0000 128K r-x-- /lib/ld.so.1
>>> FF3D0000 56K r-x-- /lib/ld.so.1
>>> FF3EE000 8K rwx-- /lib/ld.so.1
>>> FF3F0000 8K rwx-- /lib/ld.so.1
>>> FFBF0000 64K rwx-- [ stack ]
>>> total 2455056K
>>>
>>>
>>> ------ versions -----------
>>>
>>> root at radauth01 # radiusd -v
>>>
>>> This is Radiator 4.8 on radauth01
>>> Copyright Open System Consultants
>>> http://www.open.com.au/radiator
>>>
>>>
>>> root at radauth01 # perl -V
>>> Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
>>> Platform:
>>> osname=solaris, osvers=2.10, archname=sun4-solaris
>>> uname='sunos 5.10 s10_60 sun4u sparc sunw,ultra-5_10 '
>>> config_args='-Dcc=gcc -B/usr/ccs/bin/'
>>> hint=recommended, useposix=true, d_sigaction=define
>>> usethreads=undef use5005threads=undef useithreads=undef
>>> usemultiplicity=undef
>>> useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
>>> use64bitint=undef use64bitall=undef uselongdouble=undef
>>> usemymalloc=n, bincompat5005=undef
>>> Compiler:
>>> cc='gcc -B/usr/ccs/bin/', ccflags ='-fno-strict-aliasing -pipe
>>> -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
>>> optimize='-O',
>>> cppflags='-fno-strict-aliasing -pipe -I/usr/local/include'
>>> ccversion='', gccversion='2.95.3 20010315 (release)',
>>> gccosandvers='solaris2.10'
>>> intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
>>> d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
>>> ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
>>> lseeksize=8
>>> alignbytes=8, prototype=define
>>> Linker and Libraries:
>>> ld='gcc -B/usr/ccs/bin/', ldflags =' -L/usr/local/lib '
>>> libpth=/usr/local/lib /usr/lib /usr/ccs/lib
>>> libs=-lsocket -lnsl -ldl -lm -lc
>>> perllibs=-lsocket -lnsl -ldl -lm -lc
>>> libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
>>> gnulibc_version=''
>>> Dynamic Linking:
>>> dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
>>> cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'
>>>
>>>
>>> Characteristics of this binary (from libperl):
>>> Compile-time options: USE_LARGE_FILES
>>> Built under solaris
>>> Compiled at Dec 5 2005 01:53:11
>>> @INC:
>>> /usr/local/lib/perl5/5.8.7/sun4-solaris
>>> /usr/local/lib/perl5/5.8.7
>>> /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris
>>> /usr/local/lib/perl5/site_perl/5.8.7
>>> /usr/local/lib/perl5/site_perl
>>> .
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> radiator mailing list
>>> radiator at open.com.au
>>> http://www.open.com.au/mailman/listinfo/radiator
>>
>>
> _______________________________________________
> radiator mailing list
> radiator at open.com.au
> http://www.open.com.au/mailman/listinfo/radiator
--
Heikki Vatiainen <hvn at open.com.au>
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald,
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS,
TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP,
DIAMETER etc. Full source on Unix, Windows, MacOSX, Solaris, VMS,
NetWare etc.
More information about the radiator
mailing list