Hello

With my multithreaded web-rick apps an exception thrown somewhere in 
the code sometimes causes the memory used by ruby to spiral out of 
control.  True for me on Mac OS X with various 1.8.x installs.  Hard 
for me to repeat though, and when I have cleared all the exception 
throwing bugs it goes away.

Not a lot of use, but perhaps a clue.  I discovered it was the 
exceptions causing the spiral by running the code with the tracer 
enabled (which requires a lot of patience for an app of any size)

Tom


On 9 Feb 2005, at 07:27, Mark Probert wrote:

>
> Hi ..
>
> Has anyone seen anything like this?
>
> load averages:  0.63,  0.30,  0.16
> 02:07:51
> 134 processes: 118 sleeping, 14 zombie, 2 on cpu
> CPU states: 77.0% idle, 16.8% user,  5.6% kernel,  0.6% iowait,  0.0% 
> swap
> Memory: 4096M real, 2984M free, 2952M swap in use, 2357M swap free
>
>   PID USERNAME THR PRI NICE  SIZE   RES STATE   TIME    CPU COMMAND
>  6683 root       1   0    4 1744M   94M cpu0    1:18 16.93% 
> healthcollect.r
> 28954 bwczkdj    1  58    0 2608K 1792K sleep  10:55  0.49% top
>  ...
>
> The 13 mins later:
>
> load averages:  0.57,  0.65,  0.48
> 02:20:11
> 139 processes: 124 sleeping, 14 zombie, 1 on cpu
> CPU states: 93.9% idle,  3.7% user,  2.4% kernel,  0.0% iowait,  0.0% 
> swap
> Memory: 4096M real, 2678M free, 5294M swap in use, 15M swap free
>
>   PID USERNAME THR PRI NICE  SIZE   RES STATE   TIME    CPU COMMAND
>  6683 root       1  20    4 4082M  291M sleep   9:15 12.43% 
> healthcollect.r
>  ...
>
> Notice that the reported memory size of the Ruby application is 
> growing?  All
> the swap gets consumed and the process dies.  Looks like a memory leak
> somewhere, though I could well be mistaken.  Certainly, the process 
> reporting
> that it is using 4Gb of memory raise my eye brows.
>
> As background, this script runs data collection against about 220 
> network
> elements.  The script is multithreaded, with the current thread count 
> at 15.
> Each thread will have a dedicated telnet session to the network 
> element.  The
> data collected is sent straight to disk, then post-processed.
>
> I don't have access to upgrading the hardware, the swap size at all, 
> or the
> ruby version easily.
>
> $ ruby -v
> ruby 1.8.0 (2003-08-04) [sparc-solaris2.8]
>
> Regards,
>
> -- 
> -mark.  (probertm at acm dot org)
>