Page 1 of 1

RAM blow out

Posted: Mon Nov 29, 2010 12:42 am
by Martin Ryan
I'm running 9.5.1 on a VM server with Windows 2008 R2 with 16GB RAM available. My TM1 service appears to be using only 4GB, but the server is up around 15.8. It looks like TM1 is causing this somehow because the massive climb happens near the end of the TM1 startup (see screenshots) and when I shut the service down the RAM goes back to 1.2GB.

It looks like it has been caused by some feeders I wrote are causing the blow out. I had two (or even three) source feeders feeding the same target. But even so, I would expect TM1 to accurately tell me how much RAM it's using.

Has anyone come across an instance where TM1 was using way more RAM than it reported it was using?

Will raise with IBM too, once I've tried to get a bit more specific about what might be the reason.
memory problem.png
memory problem.png (128.47 KiB) Viewed 4854 times

Re: RAM blow out

Posted: Mon Nov 29, 2010 12:59 am
by tomok
Martin Ryan wrote:Has anyone come across an instance where TM1 was using way more RAM than it reported it was using?
Are you talking about reported in the properties window of server explorer, are are you talking about what Task Manager says the tm1s.exe service is using? I've found the properties window to be unreliable sometimes. I trust what Task Manager says any time over TM1.

Re: RAM blow out

Posted: Mon Nov 29, 2010 1:04 am
by Martin Ryan
Both say around 4GB (there's two images in the screenshot above, you have to scroll down to see the other part of Task Manager- and then squint really hard). It's only the Performance tab that shows 15GB. So it seems TM1 is hoodwinking Task Manager somehow.

Re: RAM blow out

Posted: Mon Nov 29, 2010 9:45 am
by Steve Vincent
Is it paging the rest of the server to disk? so that TM shows 4GB and the rest is paging, hence not showing as RAM?

Re: RAM blow out

Posted: Mon Nov 29, 2010 10:21 am
by kangkc
It sure looks like paging has taken place.

If you have the time to monitor the task manger for TM1SD.exe, you will notice that it will start building up and when the physical memory has exhausted, the memory of the task will drop suddenly but it will start building up again. A typical sign of paging taken place. Once TM1 is in paging, it will be extremely slow and in fact the whole windows server will be crawling.

Re: RAM blow out

Posted: Mon Nov 29, 2010 7:51 pm
by Martin Ryan
I think paging becomes an issue, but it's not the initial issue. I watched the whole startup and the RAM for the tm1sd.exe task never climbs particularly high, it just meanders its way up to 4.2GB. Even when the server as whole is going haywire the growth for that particular task doesn't speed up much.

I'm going to spend a bit more time with it at the end of the week. I made it go away by turning off the feeders I had recently written (about ten lines' worth), so I'm going to see if I can make it come back again. If I can reliably replicate it then I'll feed it back to IBM.

The feeders are slightly out of the ordinary in that there is a long chain, I'm feeding consolidations and I mistakenly ended up feeding the same target several times. I wonder if it's the last thing that's the problem and that every time a cell gets fed the RAM is increasing. I had previously thought that repeatedly feeding the same cell will increase start up time, but won't have a particularly big impact on RAM. Perhaps that's half true - maybe TM1 doesn't report the extra RAM, but still takes it off the OS.

Martin

Re: RAM blow out

Posted: Mon Nov 29, 2010 8:49 pm
by tomok
Martin Ryan wrote:I wonder if it's the last thing that's the problem and that every time a cell gets fed the RAM is increasing. I had previously thought that repeatedly feeding the same cell will increase start up time, but won't have a particularly big impact on RAM. Perhaps that's half true - maybe TM1 doesn't report the extra RAM, but still takes it off the OS.Martin
If that is true then it would definitely be a surprise. My understanding has always been that a feeder takes one bit (not byte) of memory as a marker in each cell fed. Refeeding the same cell just turns on the marker again, but it's the same bit so no increase in RAM. This was direct from Joe Puzstai and I've learned to trust whatever he says. Maybe that's changed but I doubt it. Are they conditional feeders? Perhaps that, combined with multi-feeding, has confused TM1 and it doesn't know what's been fed or not.

Re: RAM blow out

Posted: Mon Nov 29, 2010 10:00 pm
by lotsaram
Martin Ryan wrote:The feeders are slightly out of the ordinary in that there is a long chain, I'm feeding consolidations and I mistakenly ended up feeding the same target several times. I wonder if it's the last thing that's the problem and that every time a cell gets fed the RAM is increasing. I had previously thought that repeatedly feeding the same cell will increase start up time, but won't have a particularly big impact on RAM.
That's true for single threaded server loading but if the server is loaded on multiple threads then TM1 doesn't keep track of which cells have been fed and feeders can be reprocessed multiple times by independent threads (and consume more memory each time.) Under such circumstances a feeder which recursively feeds itself a la a circular reference could be a real problem and cause the sort of memory issue you are talking about.

Try setting MaximumCubeLoadThreads to 1 or 0 and see if this fixes things.