[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