J
Julien Schmurfy
Hello,
I am in charge of a ruby server at my work for nearly 2 years now, it
works pretty well but as our users base grows we start seeing a clear
and constant increase in memory usage over the day so here I come !
I am pretty sure it's a references leak and as a result that it is in
our code and not a leak in the interpreter but my problem is the
inexistence of any real solution to debug memory usage on 1.9 (I hope
someone could prove me wrong on this), the more successful attempt I
made was to dump all the Object count by iterating over ObjectSpace in
ruby code, while it works... sometimes, it is really inefficient and I
did not manage to get any result with this method.
My problem is that I use Fiber so I cannot really try on 1.8.x, I still
tried to run it on 1.8.7 with the fiber18 emulation but when I do the
memory stay stable...
We resorted on running the server on 1.8.7 for now (after backporting
any 1.9 specific code) but that is really an horrible long term solution
:/
I am keeping a close look on rubinius which could help me but until then
does anyone have any option for me ? I don't need something really
complicated, if only I got a C extension to dump the objects that would
be a nice start but i did not even found that running with 1.9.
Sadly it looks like 1.8 is still the preferred version for so many
people (nearly all the tools i saw were started are still developed on
1.8).
Any help/pointers would be much appreciated.
I am in charge of a ruby server at my work for nearly 2 years now, it
works pretty well but as our users base grows we start seeing a clear
and constant increase in memory usage over the day so here I come !
I am pretty sure it's a references leak and as a result that it is in
our code and not a leak in the interpreter but my problem is the
inexistence of any real solution to debug memory usage on 1.9 (I hope
someone could prove me wrong on this), the more successful attempt I
made was to dump all the Object count by iterating over ObjectSpace in
ruby code, while it works... sometimes, it is really inefficient and I
did not manage to get any result with this method.
My problem is that I use Fiber so I cannot really try on 1.8.x, I still
tried to run it on 1.8.7 with the fiber18 emulation but when I do the
memory stay stable...
We resorted on running the server on 1.8.7 for now (after backporting
any 1.9 specific code) but that is really an horrible long term solution
:/
I am keeping a close look on rubinius which could help me but until then
does anyone have any option for me ? I don't need something really
complicated, if only I got a C extension to dump the objects that would
be a nice start but i did not even found that running with 1.9.
Sadly it looks like 1.8 is still the preferred version for so many
people (nearly all the tools i saw were started are still developed on
1.8).
Any help/pointers would be much appreciated.