[SOLVED] RM eating up all RAM

npianinpiani Member Posts: 9 Contributor II
edited November 2018 in Help
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

Answers

  • MariusHelfMariusHelf RapidMiner Certified Expert, Member Posts: 1,869 Unicorn
    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
  • wesselwessel Member Posts: 537 Maven
    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
  • npianinpiani Member Posts: 9 Contributor II
    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.
  • MariusHelfMariusHelf RapidMiner Certified Expert, Member Posts: 1,869 Unicorn
    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
Sign In or Register to comment.