Elasticsearch内存溢出
那个 (Nà ge)
我正在使用Kibana时发现Elasticsearch没有运行,检查后发现出现了OutOfMemoryError。
内存溢出
“哎呀,我本来是在装有更多内存的服务器上运行的呢”,我在闹着玩而已,实际上官方文件上是写明了的。
简而言之,该意思似乎是在启动时确保正确分配堆大小并进行交换。顺便说一下,默认大小是1g。
所以通过在ES_HEAP_SIZE中指定较高的值并重新启动来恢复正常。
文件描述符
几小时后,我安心之后,现在又因为”打开的文件过多”而崩溃了。这也在之前的正式文档中有提到。
所以,我们首先执行以下调查任务。
curl localhost:9200/_nodes/process?pretty
看了一下回应,max_file_descriptors=1024。官方推荐的是32k或64k,所以这个数目有点少。
ulimit -n
唉,首先要将上限设置为1024。然后执行以下操作,然后重新启动Elasticsearch。
ulimit -n 65535
目前已得到稳定(虽然使用ulimit会在服务器重新启动后恢复原样,但这是另外处理的事情)。
顺便说一句
通过调研发现,这两个东西似乎是Elasticsearch的基本操作,使我再次认识到自己的学习不足。由于Elasticsearch不仅仅可以在Kibana中使用,还可以在其他服务中使用,因此我希望在学习运维技巧的同时,通过实际操作来积累经验。