1. 程式人生 > >解決Elasticsearch查詢出現Data too large……情況

解決Elasticsearch查詢出現Data too large……情況

Elasticsearch在實際生產環境中提供實時查詢,出現Data too large, data for [src_ip] would be larger than limit……

 

    經過一番查詢,才發現粗心的同事在啟動es的時候忘記設定堆記憶體(ES_HEAP_SIZE)導致這種情況。es預設啟動是指定堆記憶體為1G,在生產環境肯定是不能滿足的。於是

./elasticsearch -Xms10g -Xmx10g

  -Xms10g 表示JVM Heap(堆記憶體)最小為10g,初始化記憶體大小

  -Xmx10g表示應用JVM最大允許分配的堆記憶體,程式能夠使用的最大記憶體數

這兩個引數最好設定一樣,可以避免每次

GC後調整堆大小。

如果這樣設定還會出問題可以在elasticsearch.yml配置indices.breaker.fielddata.limit,預設大小為60%,可以根據實際情況調整大小,修改完成重新啟動叢集。

還可以配置indices.fielddata.cache.size清除舊資料佔用的filedata,讓新的資料可以載入進來。避免在查詢中查不到新插入的資料