问题描述:
最近搭建ELK测试系统,运行一段时间后,Kibana无法连接,并且报以下错误:
[parent] Data too large, data for [<http_request>] would be [1027562168/979.9mb], which is larger than the limit of [1020054732/972.7mb], real usage: [1027562168/979.9mb], new bytes reserved: [0/0b], usages [request=0/0b, fielddata=82993/81kb, in_flight_requests=0/0b, model_inference=0/0b, accounting=10862660/10.3mb]
问题解决过程:
网上查资料,认定是ES字段内存分配过小,按照网上方案修改字段内存分配:
PUT /_cluster/settings
{
"persistent": {
"indices.breaker.fielddata.limit": "60%"
}
}
执行结果:无效
查看当前的字段内存分配情况
GET /_stats/fielddata?fields=*
结果显示:所有索引的memory_size_in_bytes全部为0
后来执行查看系统配置命令
GET _settings/_all
此时出现了一个更详细的错误,显示为Circuit breaker errors,且为[parent]类型,查阅ES官方文档,发现是由于heap size设置过小导致。
ps查看启动命令,确实只设置了1G内存。
根据官方文档说明,在ES目录创建配置-Xms10g -Xmx10g,注意最大和最小要设置为相同大小。
vim ./config/jvm.options.d/esheap.options
-Xms10g
-Xmx10g
然后重启ElasticSearch,问题解决。