You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Kevin McCormick (JIRA)" <ji...@apache.org> on 2015/08/06 23:08:05 UTC

[jira] [Commented] (CLOUDSTACK-8678) OOM Kills Guests

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-8678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14660793#comment-14660793 ] 

Kevin McCormick commented on CLOUDSTACK-8678:
---------------------------------------------

Daan, I work with Josh, and we've been doing some work on this. We found an agent property that looked like it was exactly what we wanted: host.reserved.mem.mb. As far as I can tell, this property is completely undocumented, but it's been in the code since KVM support was first added. That property ends up being sent by the agent to the management server as dom0MinMem during StartupRoutingCommand, and has a default value of 768MB. Unfortunately, the management server seems to completely ignore it. I tested creating an instance that used up all but about 80MB on an empty host, and it deployed to that host just fine.

vm.memballoon.disable doesn't sound like it will do anything unless mem.overprovisioning.factor is >1, which we don't want to do.
mem.overprovisioning.factor can't be <1 (which is fine, setting that <1 would be more of a hack than a real solution IMO).
cluster.memory.allocated.capacity.notificationthreshold & cluster.memory.allocated.capacity.disablethreshold don't really do the job either, as they are cluster-wide. It's very possible for there to be plenty of RAM available in the cluster, but the allocator puts a VM on a host that doesn't quite have room for it. If there were an allocator that spread VMs out on the hosts based on largest available RAM, they might be more viable.

So, for additional functional demands, I think there needs to be a way for KVM hosts to save some RAM for themselves. Probably either host.reserved.mem.mb & dom0MinMem or something along the lines of _host_.memory.allocated.capacity.notificationthreshold & _host_.memory.allocated.capacity.disablethreshold.

> OOM Kills Guests
> ----------------
>
>                 Key: CLOUDSTACK-8678
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8678
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Hypervisor Controller, KVM
>    Affects Versions: 4.4.2
>         Environment: Intel Xeon Quad Core CPU L5520 @ 2.27GHz
> 98 GB RAM
> Ubuntu 14.04
> Running Cloustack 4.4.2
>            Reporter: Josh Harshman
>            Assignee: Daan Hoogland
>            Priority: Critical
>
> We have several KVM nodes running Cloudstack 4.4.2. Sometimes an instance with X amount of RAM provisioned will be started on a host that has X+a small amount of RAM free. The kernel OOM killer will eventually kill off the instance. Has anyone else seen this behavior, is there a way to reserve RAM for use by the host instead of by Cloudstack? Looking at the numbers in the database and the logs, Cloudstack is trying to use 100% of the RAM on the host.
> Any thoughts would be appreciated.
> Thank you,



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)