Elasticsearch无法创建本机线程

时间:2015-09-08 16:27:28

标签: elasticsearch

我正在运行一个由单个节点组成的elasticsearch集群。有一次,它崩溃了以下消息:“未能准备/加热”和以下异常:

java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method) [na:1.8.0_45]
    at java.lang.Thread.start(Thread.java:714) [na:1.8.0_45]
    at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:950) [na:1.8.0_45]
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1368) [na:1.8.0_45]
...

因此,操作系统(Windows 32位)似乎无法创建线程,在这种情况下,我假设它已超过此过程中可能的最大线程数。

我正在查看elasticsearch Thread Pool documentation,听起来问题是这些线程池中的一些默认情况下是无限制的。另外,由于这是一台32位机器,因此更有可能耗尽线程。

我的问题是:(1)这看起来像是有效的评估吗? (2)文档提到某些池默认为“缩放”。但它没有描述“缩放”的含义。在某处有描述吗?

是否可以将设置保留为缩放,但是指定要分配的最大线程数?是否最好使用“固定”大小的线程池指定这些设置?

1 个答案:

答案 0 :(得分:-1)

不,我认为您的评估是倒退的:您的Elastic实例内存不足。它在尝试创建新线程时这样做了,但这很可能是巧合。

您对弹性JVM的Xmx设置是什么?