Looking for advice on ways to limit Monet's RAM usage
Hello, We're running the Oct2012-SP1 release on Ubuntu 12.04.1. It's working great, but we need to constrain its RAM usage because it's not the only process running on its machine.
From the mailing list archives, it looks like ulimit is the recommended way of doing this, but we haven't been able to get it to do what we want.
Specifically, we've tried: ulimit -Sm (max resident set size) ulimit -Sv (max virtual memory) Limiting the resident set size doesn't seem to have an effect - the mserver5 process's resident size seems to grow freely. Limiting the virtual memory does in fact manage to keep mserver5 from consuming more than the allocated amount, however when mserver5 hits the limit, it just crashes (which is what I would have expected based on this document http://www.monetdb.org/Documentation/UserGuide/resources). Our next step is to look at Linux Containers http://lxc.sourceforge.net/, but before going that route I figured I'd check and see how other folks have handled this. Thanks in advance, Percy -- Percy Wegmann +1 512 637 8500 ext 148 _______________________________________________ users-list mailing list users-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/users-list
On 28-11-2012 13:18:00 +0100, Percy Wegmann wrote:
Hello,
We're running the Oct2012-SP1 release on Ubuntu 12.04.1. It's working great, but we need to constrain its RAM usage because it's not the only process running on its machine.
From the mailing list archives, it looks like ulimit is the recommended way of doing this, but we haven't been able to get it to do what we want.
Specifically, we've tried:
ulimit -Sm (max resident set size)
ulimit -Sv (max virtual memory)
Limiting the resident set size doesn't seem to have an effect - the mserver5 process's resident size seems to grow freely.
This is because Linux doesn't enforce this. Solaris for instance, does.
Limiting the virtual memory does in fact manage to keep mserver5 from consuming more than the allocated amount, however when mserver5 hits the limit, it just crashes (which is what I would have expected based on [1]this document).
Yes, as is with the ulimit of RSS if it would work. MonetDB does not know about the limitations in effect, and hence predicts too optimistic (based on total available memory and free memory).
Our next step is to look at [2]Linux Containers, but before going that route I figured I'd check and see how other folks have handled this.
I'm affraid all attempts in this area failed. MonetDB needs lots of memory, and it should start to free memory when there is not so much left. It may be we put the treshold a bit too tight there. Fabian -- Fabian Groffen fabian@monetdb.org column-store pioneer http://www.monetdb.org/Home _______________________________________________ users-list mailing list users-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/users-list
Hi Percy, while I cannot readily provide any advice on you actual question --- after all, given that MonetDB aims providing high-performance data analytics by efficiently exploiting large main memories, we usually assume it runs on a dedicated machine and does not have to share precious main memory with other demanding processes --- I would not expect that MonetDB crashes with restricted virtual memory. It might fail loading or querying large data set due running out of available address space, but it should do so by triggering and error or exception, while keeping the server running. In case the server indeed crashes, we'd be more than thankful if you could share your experiences with us, under which circumstances and how (segfault, assertion, etc.) the server crashes, preferably by filing a respective bug report via bugs.monetdb.org . Thanks! Stefan ----- Original Message -----
Hello,
We're running the Oct2012-SP1 release on Ubuntu 12.04.1. It's working great, but we need to constrain its RAM usage because it's not the only process running on its machine.
From the mailing list archives, it looks like ulimit is the recommended way of doing this, but we haven't been able to get it to do what we want.
Specifically, we've tried:
ulimit -Sm (max resident set size) ulimit -Sv (max virtual memory)
Limiting the resident set size doesn't seem to have an effect - the mserver5 process's resident size seems to grow freely.
Limiting the virtual memory does in fact manage to keep mserver5 from consuming more than the allocated amount, however when mserver5 hits the limit, it just crashes (which is what I would have expected based on this document http://www.monetdb.org/Documentation/UserGuide/resources).
Our next step is to look at Linux Containers http://lxc.sourceforge.net/, but before going that route I figured I'd check and see how other folks have handled this.
Thanks in advance, Percy
--
Percy Wegmann +1 512 637 8500 ext 148
_______________________________________________ users-list mailing list users-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/users-list
_______________________________________________ users-list mailing list users-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/users-list
Thanks gentlemen. I will make sure to run Monet on its own machine
(virtual or otherwise).
Stefan - I've logged a bug for this. Please let me know if you need any
other info in there.
http://bugs.monetdb.org/show_bug.cgi?id=3201
Cheers,
Percy
On Wed, Nov 28, 2012 at 6:41 AM, Stefan Manegold
Hi Percy,
while I cannot readily provide any advice on you actual question --- after all, given that MonetDB aims providing high-performance data analytics by efficiently exploiting large main memories, we usually assume it runs on a dedicated machine and does not have to share precious main memory with other demanding processes --- I would not expect that MonetDB crashes with restricted virtual memory. It might fail loading or querying large data set due running out of available address space, but it should do so by triggering and error or exception, while keeping the server running.
In case the server indeed crashes, we'd be more than thankful if you could share your experiences with us, under which circumstances and how (segfault, assertion, etc.) the server crashes, preferably by filing a respective bug report via bugs.monetdb.org .
Thanks! Stefan
----- Original Message -----
Hello,
We're running the Oct2012-SP1 release on Ubuntu 12.04.1. It's working great, but we need to constrain its RAM usage because it's not the only process running on its machine.
From the mailing list archives, it looks like ulimit is the recommended way of doing this, but we haven't been able to get it to do what we want.
Specifically, we've tried:
ulimit -Sm (max resident set size) ulimit -Sv (max virtual memory)
Limiting the resident set size doesn't seem to have an effect - the mserver5 process's resident size seems to grow freely.
Limiting the virtual memory does in fact manage to keep mserver5 from consuming more than the allocated amount, however when mserver5 hits the limit, it just crashes (which is what I would have expected based on this document http://www.monetdb.org/Documentation/UserGuide/resources).
Our next step is to look at Linux Containers http://lxc.sourceforge.net/, but before going that route I figured I'd check and see how other folks have handled this.
Thanks in advance, Percy
--
Percy Wegmann +1 512 637 8500 ext 148
_______________________________________________ users-list mailing list users-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/users-list
_______________________________________________ users-list mailing list users-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/users-list
-- Percy Wegmann +1 512 637 8500 ext 148 _______________________________________________ users-list mailing list users-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/users-list
participants (3)
-
Fabian Groffen
-
Percy Wegmann
-
Stefan Manegold