update fielddata doc_values elasticsearch kibana-4

fielddata - elasticsearch mapping field



FIELDDATA Los datos son demasiado grandes (4)

Creo que es importante entender por qué está sucediendo esto en primer lugar.

En mi caso, tuve este error porque estaba ejecutando agregaciones en campos "analyzed" . En caso de que realmente necesite que se analyzed su campo de cadena, debe considerar el uso de multifields y hacer que se analyzed para las búsquedas y no se analyzed en busca de agregaciones.

Abro kibana y hago una búsqueda y me sale el error donde fallaron los fragmentos. Busqué en el archivo elasticsearch.log y vi este error:

org.elasticsearch.common.breaker.CircuitBreakingException: [FIELDDATA] Data too large, data for [@timestamp] would be larger than limit of [622775500/593.9mb]

¿Hay alguna forma de aumentar ese límite de 593.9mb?


Me encontré con este problema el otro día. Además de verificar la memoria de datos de campo, también consideraría verificar la memoria de JVM y OS. En mi caso, el administrador olvidó modificar el ES_HEAP_SIZE y lo dejó en 1gig.


Me encuentro con este problema, también. Luego verifico la memoria de datos de campo.

use debajo de la solicitud:

`GET /_stats/fielddata?fields=*`

la pantalla de salida:

"logstash-2016.04.02": { "primaries": { "fielddata": { "memory_size_in_bytes": 53009116, "evictions": 0, "fields": { } } }, "total": { "fielddata": { "memory_size_in_bytes": 53009116, "evictions": 0, "fields": { } } } }, "logstash-2016.04.29": { "primaries": { "fielddata": { "memory_size_in_bytes":0, "evictions": 0, "fields": { } } }, "total": { "fielddata": { "memory_size_in_bytes":0, "evictions": 0, "fields": { } } } },

Puedes ver mis índices con el nombre de fecha y hora y los desalojos son 0. Además, la memoria 2016.04.02 es 53009116, pero 2016.04.29 es 0 también.

entonces puedo hacer una conclusión, los datos antiguos han ocupado toda la memoria, por lo que los datos nuevos no pueden usarla, y luego, cuando hago nuevos datos, aumenta la Excepción CircuitBreaking

puedes configurar config / elasticsearch.yml

indices.fielddata.cache.size: 20%

Esto puede desalojar los datos cuando se alcanza el límite de memoria.

pero puede ser la solución real, debe agregarle memoria en futuro. Y monitorear el uso de memoria de datos de campo es buenos hábitos.

más detalles: https://www.elastic.co/guide/en/elasticsearch/guide/current/_limiting_memory_usage.html


Puede intentar aumentar el límite de interruptor de circuito de datos de campo al 75% (el valor predeterminado es 60%) en su archivo de configuración elasticsearch.yml y reiniciar su clúster:

indices.breaker.fielddata.limit: 75%

O si prefiere no reiniciar su clúster, puede cambiar la configuración de forma dinámica usando:

curl -XPUT localhost:9200/_cluster/settings -d ''{ "persistent" : { "indices.breaker.fielddata.limit" : "40%" } }''

Darle una oportunidad.