亲,只收二进制

elasticsearch 优化问题

Elasticsearch | 作者 john123 | 发布于2019年03月13日 | 阅读数:2013

现在有一个es的集群,三台机,每台机的配置都是4核,32G 内存,1T的SSD,如何能优化它的读写速度呢,尤其是搜索的速度,怎么计算它可以承受多少并发,上次出过一次search的队列满了,至今也查不出什么原因,
已邀请:

ouyangchucai - Elasticsearch中文社区钉钉群号 : 21737292

赞同来自: hapjin

拿线上的查询条件在业务低峰期做压力测试,除了官方的esrally也可以自己用apache ab、jmeter之类的工具压测,这样才能知道比较靠谱的实际并发处理能力。查询队列满,一般是io或者CPU资源达到瓶颈,登录服务器看看资源开销。分析logs文件夹的慢查询日志、gc日志,看看是否有些查询条件不合理。
 
慢查询日志开启模板:
PUT _settings
{
"index.indexing.slowlog.threshold.index.debug" : "10ms",
"index.indexing.slowlog.threshold.index.info" : "50ms",
"index.indexing.slowlog.threshold.index.warn" : "100ms",
"index.search.slowlog.threshold.fetch.debug" : "100ms",
"index.search.slowlog.threshold.fetch.info" : "200ms",
"index.search.slowlog.threshold.fetch.warn" : "500ms",
"index.search.slowlog.threshold.query.debug" : "100ms",
"index.search.slowlog.threshold.query.info" : "200ms",
"index.search.slowlog.threshold.query.warn" : "1s"
}

PUT _template/aliyun-slowlog_template
{
"order": -1,
"version": 0,
"template": "*",
"settings": {
"index.indexing.slowlog.threshold.index.debug" : "10ms",
"index.indexing.slowlog.threshold.index.info" : "50ms",
"index.indexing.slowlog.threshold.index.warn" : "100ms",
"index.search.slowlog.threshold.fetch.debug" : "100ms",
"index.search.slowlog.threshold.fetch.info" : "200ms",
"index.search.slowlog.threshold.fetch.warn" : "500ms",
"index.search.slowlog.threshold.query.debug" : "100ms",
"index.search.slowlog.threshold.query.info" : "200ms",
"index.search.slowlog.threshold.query.warn" : "1s"
}
}


参考链接:阿里云Elasticsearch性能优化实践 https://yq.aliyun.com/articles/670118

rochy - rochy_he

赞同来自:

可以使用 Elasticsearch 压测工具 esrally 进行测试
可参考:https://blog.csdn.net/wuxiao55 ... 91834
 
此外查询速度一般要看数据结构的设计和查询语句了

code4j - coder github: https://github.com/rpgmakervx

赞同来自:

search队列满了,主要是因为节点处理搜索请求太慢,原因比较多,可能是因为节点内存吃紧fgc导致处理慢,有可能是CPU打满了处理不过来了等等,要监控下当时机器指标综合分析

要回复问题请先登录注册