我的网络服务器正在运行 ubuntu 14.10,带有 elasticsearch 1.5.0 和 java 1.7u55
由于某种原因,elasticsearch 服务经常出现故障,导致我的网站无法再供用户使用(使用带有 symfony 的 FOSElasticaBundle)。
我正在使用 systemctl 自动重启它,但我希望一劳永逸地解决问题。我觉得我的日志不够详细。作为管理服务器的新手,我需要一些帮助。
有人能帮我找出失败的原因吗?我可以在这里输出哪些正确的文件以更好地理解问题?
谢谢 !
我的 systemctl 状态显示:
elasticsearch.service - ElasticSearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled)
Active: active (running) since Mon 2015-04-20 12:04:24 CEST; 1h 56min ago <------------- Here it means restarted 1h56 ago. Why did it fail in the first place ?
Main PID: 9120 (java)
CGroup: /system.slice/elasticsearch.service
└─9120 /usr/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingO...
在我的 journalctl 中,我有:
Apr 18 18:56:19 xx.ovh.net sshd[29397]: error: open /dev/tty failed - could not set controlling tty: Permission denied
Apr 20 13:52:45 xx.ovh.net sshd[9764]: error: open /dev/tty failed - could not set controlling tty: Permission denied
编辑:当我启动第一个搜索请求时它经常重新启动:
elasticsearch.service - ElasticSearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled)
Active: activating (auto-restart) (Result: signal) since Tue 2015-04-21 12:27:43 CEST; 10s ago
Process: 15618 ExecStart=/usr/share/elasticsearch/bin/elasticsearch (code=killed, signal=ABRT)
Main PID: 15618 (code=killed, signal=ABRT)
答案1
好吧,由于声誉低,我无法发表评论,但一个 elasticsearch 实例至少需要 1.5 gB 才能舒适地运行,也许更多,具体取决于您的要求。默认情况下,elastic 占用 1 gB 内存,然后 lucene(ES 利用的搜索库)将占用一些其他内存来执行搜索。以下是 elastic 网站上的几个链接,关于管理内存并阻止您的进程因其内存使用而被 OOM 杀手杀死。
https://www.elastic.co/guide/en/elasticsearch/guide/current/_limiting_memory_usage.html
答案2
当下次发生这种情况时,请检查free - m
并监控 Elasticsearch 日志/var/log/elasticsearch/your cluster name.log
。