Search code examples
openstackcloudify

Machine <IP_address> has been started with not enough memory


I am using Cloudify 2.7 with OpenStack Icehouse.

I developed a tomcat recipe and deployed it. In the orchestrator log of the cloudify console, I read the following WARNING:

2015-06-04 11:05:01,706 ESM INFO [org.openspaces.grid.gsm.strategy.ScaleStrategyProgressEventState] - [tommy.tomcat] machines SLA enforcement is in progress.; Caused by: org.openspaces.grid.gsm.machines.exceptions.ExpectedMachineWithMoreMemoryException: Machines SLA Enforcement is in progress: Expected machine with more memory. Machine <Public_IP>/<Public_IP> has been started with not enough memory. Actual total memory is 995MB. Which is less than (reserved + container) = (0MB+3800MB) = 3800MB

The Flavor of the VM is: 4GB RAM, 2vCPU, 20GB Disk

Into the cloud driver I commented the following line:

//reservedMemoryCapacityPerMachineInMB 1024

and configured the compute section related to the flavor as following:

computeTemplate
                    {
                imageId <imageID>
                machineMemoryMB 3900
                hardwareId <hardwareId>
                ...
                }

Can someone help me to pointing out the error? Thanks.


Solution

  • The error message states that the actual available memory is only 995MB, which is considerably less than the expected 4GB. To clarify that:

    1. do you run multiple services on the same machine?
    2. maybe the VM really has less memory than expected. please run 'cat /proc/meminfo' on the started VM to verify the exact memory it has

    In principle, you should not comment out any setting of reserved memory because Cloudify must take that into account - this setting is supposed to represent the memory used by the OS and other processes. additionally, the orchestrator (ESM) takes into account ~100 MB for cloudify to run freely. So, please update machineMemoryMB to the value calculated this way:

    (the number returned by 'cat /proc/meminfo') - 1024 - 100