2017-08-17 54 views
0

我們正在爲我們的企業設置ELK,一切都安裝完畢。 的硬件/軟件配置如下:Easticsearch停止與外部存儲器

總RAM - 192G JDK =爪哇熱點(TM)64位服務器VM

用於注入數據文件,我們使用Logstash filebeat插件和索引建正確,事情似乎直到我們得到了以下錯誤

java.lang.OutOfMemoryError: unable to create new native thread 
     at java.lang.Thread.start0(Native Method) ~[?:1.8.0_144] 
     at java.lang.Thread.start(Thread.java:717) ~[?:1.8.0_144] 
     at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:957) ~[?:1.8.0_144] 
     at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:1025) ~[?:1.8.0_144] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) ~[?:1.8.0_144] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_144] 
     at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] 

第一印象是,它可能已經引起狹窄-Xms-Xmx設置爲正常工作,我們把它改成20g

但問題依然存在。該Elasticsearch正常啓動,重建索引,然後...

基於幾個線程 - 我們嘗試了以下內容:

  1. 改變了在jvm.options文件Xss設置從1m228k
  2. ulimit增加到65536

但是,似乎沒有任何工作。

回答

0

您可以嘗試將Xmx提高到30GB。還可以在elasticsearch jvm上啓用JMX來檢查哪些消耗堆空間更多。

想知道你有多少個索引以及這些索引佔用多少磁盤空間?

1

這與堆無關,如錯誤消息所示,JVM無法創建本機操作系統線程。請通過ulimit確保可以啓動新的進程。

另一方面,這也可能顯示配置錯誤(即錯誤配置的線程池嘗試產生太多的線程)。

0

我同意,它沒有任何與堆大小爲20克是綽綽有餘任何像樣的應用,也是錯誤顯示unable to create new native thread

我解決了問題(截至目前),通過改變「最大用戶進程'從102465536