[SOLVED] RM eating up all RAM

npiani
npiani New Altair Community Member
edited November 5 in Community Q&A
I was wondering if anyone else if having this problem.
When I run a process that takes a long time, RM starts eating up more and more of my RAM. But even after it is done, it does not let go of the RAM it was using.

Can you set a cap on the Memory used by RM? And if so, can you have it free up that memory after it's done?

Thank you.
~Dr. Chen
Tagged:

Answers

  • MariusHelf
    MariusHelf New Altair Community Member
    Hi,

    which system are you using (Linux/Windows/Mac)?
    On windows you can control the amount of RAM by using the rapidminer.bat in the scripts folder in RapidMiner's installation directory and adjusting the JAVA_MAX_MEMORY variable inside that script. On Linux/Mac you can use the RapidMinerGUI script in the same directory and adjust the same variable. You have to make that file executable to be able to use it.

    Best, Marius
  • wessel
    wessel New Altair Community Member
    I recommend using the "Free Memory" operator inside your RM process.
    Do some experiments where to best place it, often at the beginning of a loop.
    After your process has ran, simply restart RM.

    Best regards,

    Wessel
  • npiani
    npiani New Altair Community Member
    Marius,
    I will limit the amount of memory RM can use. Thanks for the hint.

    Wessel,
    I didn't know about the free memory operator, so thank you for that. I know that you can restart rapidminer to clear the memory it's using, but I was thinking that unless there's a good reason not to, Rapidminer should free up that memory automatically after it's done with a process.

    Thank you both.
  • MariusHelf
    MariusHelf New Altair Community Member
    No, RapidMiner does not (always) free up memory it does not need anymore. That's a particularity of java - the developer does not need to free up memory explictly, but java does it automatically. That's cool on one hand, on the other hand there is no guarantee when the memory is actually freed. To force java to clean up the memory, you can use the Free Memory operator.

    Best, Marius