Elasticsearch问题总结

1.ES大量做FULL GC,日志如下:

[2016-12-15 14:53:21,496][WARN ][monitor.jvm ] [vsp4] [gc][old][94725][4389] duration [26.9s], collections [1]/[27s], total [26.9s]/[15.9h], memory [19.7gb]->[17gb]/[19.8gb], all_pools {[young] [1.1gb]->[43.1mb]/[1.1gb]}{[survivor] [130.2mb]->[0b]/[149.7mb]}{[old] [18.5gb]->[16.9gb]/[18.5gb]}
[2016-12-15 14:53:57,117][WARN ][monitor.jvm ] [vsp4] [gc][old][94731][4390] duration [29.9s], collections [1]/[30.4s], total [29.9s]/[15.9h], memory [18.6gb]->[18gb]/[19.8gb], all_pools {[young] [71.1mb]->[51.8mb]/[1.1gb]}{[survivor] [149.7mb]->[0b]/[149.7mb]}{[old] [18.4gb]->[18gb]/[18.5gb]}
[2016-12-15 14:54:31,246][WARN ][monitor.jvm ] [vsp4] [gc][old][94735][4391] duration [30.6s], collections [1]/[31.1s], total [30.6s]/[15.9h], memory [18.5gb]->[17.9gb]/[19.8gb], all_pools {[young] [14.3mb]->[1.3mb]/[1.1gb]}{[survivor] [22.1mb]->[0b]/[149.7mb]}{[old] [18.4gb]->[17.9gb]/[18.5gb]}

ES内存配置策略有2点:

1.不超过可用内存的50%

2.不超过32G

fielddata加载数据到内存是按index来的,不会只加载检索结果数据,indices.fielddata.cache.size(5gb or 20%)控制fielddata可用内存,内存不够时,淘汰老数据,ES默认不淘汰。设置该值并不好,这样内存不够时每次会从磁盘读取,引起大量磁盘I/O,但如果想要ES只缓存最近的数据到内存,需要配置。

 监控fielddata

  • per-index using the indices-stats API:

    GET /_stats/fielddata?fields=*
  • per-node using the nodes-stats API:
    GET /_nodes/stats/indices/fielddata?fields=*
  • Or even per-index per-node:
GET /_nodes/stats/indices/fielddata?level=indices&fields=*

By setting ?fields=*, the memory usage is broken down for each field.

fielddata circuit breaker可以在fielddata加载到内存前预估内存是否够用,如果内存不够用而继续读取fielddata到内存会导致内存溢出

连接:https://www.elastic.co/guide/en/elasticsearch/guide/current/_limiting_memory_usage.html

时间: 2024-10-27 01:38:26

Elasticsearch问题总结的相关文章

ElasticSearch

一.概述 1.简介 ElasticSearch是一个基于Lucene实现的开源.分布式.Restful的全文本搜索引擎:此外,它还是一个分布式实时文档存储,其中每个文档的每个field均是被索引的数据,且可被搜索:也是一个带实时分析功能的分布式搜索引擎,能够扩展至数以百计的节点实时处理PB级的数据. 应用场景:当我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的.我们希望搜索解决方案要运行速度快.能有一个零配置和一个完全免费的搜索模式.能够简单地使用JSON通过

学习elasticsearch(一)linux环境搭建(2)——启动elasticsearch

在启动访问es的过程中遇到了各种的奇葩问题. 1.网上各种版本的启动方式让人眼花缭乱不知如何启动.简单粗暴--到es的bin目录下直接 执行 ./elasticsearch //显示启动,ctrl+c可停止,如要操作,换个终端 ./elasticsearch -d 后台启动,可在当前终端继续操作 //后台启动,如要停止执行 kill -9 pid //哈哈,直接杀掉进程 //搜索es进程pid可以酱紫 ps aux | grep elasticsearch //注意,不确定那个是pid的话多执行

ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack

最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收

elasticsearch index 之 put mapping

mapping机制使得elasticsearch索引数据变的更加灵活,近乎于no schema.mapping可以在建立索引时设置,也可以在后期设置.后期设置可以是修改mapping(无法对已有的field属性进行修改,一般来说只是增加新的field)或者对没有mapping的索引设置mapping.put mapping操作必须是master节点来完成,因为它涉及到集群matedata的修改,同时它跟index和type密切相关.修改只是针对特定index的特定type. 在Action su

Elasticsearch VS Solr

最近公司用到了ES搜索引擎,调研发现大公司常用的搜索引擎还有Solr. 鉴于 Lucene 强大的特性和稳定性,有很多种基于 Lucene 封装的企业级搜索平台.其中最流行有两个:Apache Solr 和 Elastic search. Apache Solr:它本身是 Apache Lucene 项目下的开源企业搜索平台,算是 Lucene 的直系.美团.阿里搜索服务是基于 Solr 来搭建的. Elastic Search:简称 ES,由 Elastic 公司开发.Elastic 成立于

Elasticsearch实践指南

http://nginxs.blog.51cto.com/ 从2014年到现在接触ES(Elasticsearch)已经两年多了,感触良多尤其ES的开盒即用特性完全区别于之前接触复杂的hadoop和solor.ES不需要你对它了解就能很快入门,而且ES的实时搜索,自动拓展,自愈功能深深吸引我.最近很多朋友也开始使用向我问了很多常见问题,我在这总结了一些使用中踩过的坑希望大家对ES有更多的了解. 简介 Elasticsearch是基于Lucene开发的一个准实时搜索服务,搜索延时在秒级.ES存储主

[Elasticsearch] 关于字段重复值的常用查询和操作总结

1. 取得某个索引中某个字段中的所有出现过的值 这种操作类似于使用SQL的SELECT UNIQUE语句.当需要获取某个字段上的所有可用值时,可以使用terms聚合查询完成: GET /index_streets/_search?search_type=count { "aggs": { "street_values": { "terms": { "field": "name.raw", "siz

elasticsearch java 客户端之Client简介

elasticsearch通过构造一个client体现对外提供了一套丰富的java调用接口.总体来说client分为两类cluster信息方面的client及数据(index)方面的client.这两个大类由可以分为普通操作和admin操作两类.以下是client的继承关系(1.5版本,其它版本可能不一样): 通过这个继承关系图可以很清楚的了解client的实现,及功能.总共有三类即client, indicesAdminClient和ClusterAdminClient.它都有自己的实现类,但

Elasticsearch之marvel插件安装之后的浏览详解

前提, Elasticsearch之插件介绍及安装 https://i.cnblogs.com/posts?categoryid=950999&page=2  (强烈建议,从头开始看) 比如,我的这里是http://192.168.80.200:9200/_plugin/marvel/ 1.概览 继续

ElasticSearch之常用插件安装命令

#head监控安装,推荐 bin/plugin -install mobz/elasticsearch-head #bigdesk集群状态,推荐 bin/plugin -install lukas-vlcek/bigdesk #marvel监控安装 bin/plugin -i elasticsearch/marvel/latest #es-sql安装,网页内有详细说明 https://github.com/NLPchina/elasticsearch-sql #jdbc-river安装(rive