高并发(20000+QPS)性能问题排查

16核/32G服务器10台,支持20000左右的QPS请求,其中某一类请求,大部分99.9%的响应时间都在20ms以内,但每隔1分钟,就会出现连续一串响应时间大于300ms以上的请求,非常规律,优化了索引大小,相关字段norms和doc_values也做了优化,但这个现象还是一直存在。。es的线程队列基本无阻塞、jvm heap也很充足,refresh_interval设置为10s,请教各位大神,可能是什么原因?
已邀请:

kennywu76 - wood@Ctrip

赞同来自: vearne zaccheus

如果GC没有可疑点,线程池没有排队的,那么有可能和请求本身的特性有关系。
 
这个“某一类”请求,是什么样子的,能否给个DSL范例?  如果是非常有规律的每分钟出现一次,有些怀疑是按照时间范围做的range查询,并且精度是分钟级。  因为range filter会被cache起来,在结果集很大的情况下,构造cache耗时会比较长,后面快的查询则可能是因为直接走了cache。 由于精度是分钟级,所以每分钟cache过期,重新构建,规律性出现长耗时查询。
 
在看到DSL进一步分析以前,仅仅是猜测。 

medcl - Elastic 🇨🇳 !

赞同来自:

GC 监控看看

zqc0512

赞同来自:

你查询是通过什么方式查询的?
这玩意是缓存的带来的吧,把ES的缓存加大些。

zaccheus

赞同来自:

已打开慢查询日志,无慢查询

vearne - stay foolish stay hungry

赞同来自:

什么样的查询,给个样例,另外refresh周期是?

要回复问题请先登录注册