我正在使用带有8GB内存的aws实例上的河流插件的elasticsearch“1.4.2”。一周工作正常但是一周之后河流插件[plugin = org.xbib.elasticsearch.plugin.jdbc。 river.JDBCRiverPlugin 版本= 1.4.0.4]也停止工作我也无法对服务器进行ssh登录。服务器重启后ssh登录工作正常,当我查看弹性搜索日志时,我发现此错误。
[2015-01-29 09:00:59,001][WARN ][river.jdbc.SimpleRiverFlow] no river mouth
[2015-01-29 09:00:59,001][ERROR][river.jdbc.RiverThread ] java.lang.OutOfMemoryError: unable to create new native thread
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: unable to create new native thread
重新启动服务后一切正常。但是在一定时间间隔之后也会发生同样的事情。任何人都可以说出原因和解决方案。如果需要任何其他细节,请告诉我。
当我使用
检查文件描述符的数量时sudo ls /proc/1503/fd/ | wc -l
我可以看到它每次都在增加。它是320,现在达到360(不断增加)。和
sudo grep -E "^Max open files" /proc/1503/limits
这显示65535
vendor_id : GenuineIntel
cpu family : 6
model : 62
model name : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
stepping : 4
microcode : 0x415
cpu MHz : 2500.096
cache size : 25600 KB
siblings : 8
cpu cores : 4
MemTotal: 62916320 kB
MemFree: 57404812 kB
Buffers: 102952 kB
Cached: 3067564 kB
SwapCached: 0 kB
Active: 2472032 kB
Inactive: 2479576 kB
Active(anon): 1781216 kB
Inactive(anon): 528 kB
Active(file): 690816 kB
Inactive(file): 2479048 kB
答案 0 :(得分:1)
执行以下操作
以root身份运行以下两个命令:
ulimit -l unlimited
ulimit -n 64000
在/etc/elasticsearch/elasticsearch.yml
中,请确保取消注释或添加一行说明:
bootstrap.mlockall:true
在/etc/default/elasticsearch
取消注释显示MAX_LOCKED_MEMORY=unlimited
的行(或添加一行),并将ES_HEAP_SIZE
行设置为合理的数字。确保它没有足够高的内存量,你不会饿死弹性搜索,但它不应该高于系统内存的一半,绝对不会高于~30GB。我在数据节点上设置为8g
。
在某种程度上,这个过程显然缺乏资源。为您的系统提供充足的内存,并为弹性搜索提供很好的帮助。
答案 1 :(得分:0)
我认为您需要分析您的服务器日志。也许在:/var/log/message