机器 <IP_address> 已启动,内存不足

Machine <IP_address> has been started with not enough memory

我正在使用 Cloudify 2.7 和 OpenStack Icehouse。

我开发了一个 tomcat 配方并部署了它。在 cloudify 控制台的 orchestrator 日志中,我读到以下警告:

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

VM 的风格是:4GB RAM,2vCPU,20GB 磁盘

进入云驱动我评论了下面一行:

//reservedMemoryCapacityPerMachineInMB 1024

并配置与flavor相关的计算部分如下:

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

谁能帮我指出错误? 谢谢

错误信息指出实际可用内存只有995MB,比预期的4GB少很多。澄清一下:

  1. 您 运行 同一台机器上有多个服务吗?
  2. 也许虚拟机的内存确实比预期的要少。请 运行 'cat /proc/meminfo' 在启动的 VM 上验证它拥有的确切内存

原则上,您不应注释掉保留内存的任何设置,因为 Cloudify 必须考虑到这一点 - 此设置应该代表 OS 和其他进程使用的内存。此外,编排器 (ESM) 考虑到约 100 MB 的 cloudify 到 运行 自由。 因此,请将 machineMemoryMB 更新为这样计算的值:

('cat /proc/meminfo'返回的数字) - 1024 - 100