Andreas Henriksson wrote:
> Bob Proulx wrote:
> > Why the defunct zombies?  It doesn't wait(2) for its children?
> > Apparently not!
> 
> If you want to know why your statement are wrong, you don't even
> need to look at the source - just read
> /usr/share/doc/bandwidthd/README.Debian
> 
> This is a FAQ.

Ah...  I see.  An interesting program design.  Unconventional.  I
would do it differently.  But not unreasonable.  The child process
accounting balances.  Now that I understand it I am okay with it.

> > Here is a snap from htop. to show what the userland memory and
> > swap looks like.
> > 
> >   Mem[||||||||||||||||||||||||1901/2017MB]
> >   Swp[|||||||||||             1116/3811MB]
> > 
> >   PID USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command       
> >               
> > 12296 root      21   1  767M  534M  2512 S  0.0 26.5  3h08:03 
> > /usr/sbin/bandwidthd        
> > 12297 root      21   1  836M  451M  2524 S  0.0 22.4  6h25:54 
> > /usr/sbin/bandwidthd
> > 25970 root      25   5  516M  429M  2980 R 70.0 21.3  1:03.89 
> > /usr/sbin/bandwidthd
> > 12295 root      21   1  513M  415M  2516 S  0.0 20.6  2h33:06 
> > /usr/sbin/bandwidthd
> > 12299 root      21   1  593M  252M  2520 S  0.0 12.5 13h22:35 
> > /usr/sbin/bandwidthd
> 
> I don't find this information very useful..... A valgrind log would
> probably be much more useful.

It was only provided to show the indications seen by a user (me!)
about the behavior of the program.  The processes are consuming a lot
of memory.  It isn't thrashing.  The working set size seems smaller
than the total set size.  This would be the same symptoms as a memory
leak but impossible to tell at this point.  I will need to debug it
more.

If I get to the point of debugging in more detail I will then invoke
valgrynd and try to figure out where the memory is being used.  Until
then all I can report is that it is using a lot of memory.

> > (And worse is that when I restart it all of the history is lost
> > and it starts again fresh.  Making this quite fragile.  But that
> > would be a separate bug report.)
> 
> Have a look at the recover_cdf config option, if you want to read in your
> logged CDF files on restart.

The manual for bandwidthd.conf says:

  recover_cdf <bool>
        Recover from logfiles after restart.  Default false.  Warning:
        This can take very long time if the logfiles are big.
        Enabling this and having bandwidthd start on system start
        might be a bad idea.  It will delay your possibilities to log
        in locally since it's not done in the background.

I have the package default unchanged.  The value I have in the
/etc/bandwidthd/bandwidthd.conf file is:

  $ grep recover_cdf /etc/bandwidthd/bandwidthd.conf 
  #recover_cdf false
  recover_cdf true

Therefore it should resume after a restart.  It does not.

I think part of the problem for me might be that the site (a k-12
school) might have a very high level of activity and might simply be
too big for the capabilities of bandwidthd.  I have the same
configuration running on two other sites with much less activity and
it works fine there.

Bob

Attachment: signature.asc
Description: Digital signature

Reply via email to