1.Cannot allocate memory
"无法分配内存",主要为linux内存资源分配的问题,解决方法:
sysctl vm.overcommit_memory=1
Linux下有个内核参数overcommit_memory,是内存分配策略,程序在启动的时候会先去申请内存,尽管不一定都会用的到那么多。
overcommit_memory此参数决定是否接受超大内存请求的条件。这个参数有三个可能的值:
- 0 — 默认设置。内核执行启发式内存过量使用处理,方法是估算可用内存量,并拒绝明显无效的请求。遗憾的是因为内存是使用启发式而非准确算法计算进行部署,这个设置有时可能会造成系统中的可用内存超载。
- 1 — 内核执行无内存过量使用处理。使用这个设置会增大内存超载的可能性,但也可以增强大量使用内存任务的性能。
- 2 — 内存拒绝等于或者大于总可用 swap 大小以及overcommit_ratio指定的物理RAM比例的内存请求。如果您希望减小内存过度使用的风险,这个设置就是最好的。
目前的内存申请和可用情况cat /proc/meminfo | grep Commit - CommitLimit 表示系统可申请的总内存
- Committed_AS为当前已经申请的内存
2.org.jruby.exceptions.SystemExit: (SystemExit) exit
"系统退出",不出意外的话是因为启动logstash所用的配置文件的问题,解决如下: