提问:布和纸怕什么?

ES6.x 设置堆内存越大,查询速度越慢,是什么原因?

Elasticsearch | 作者 wszlh1990 | 发布于2019年01月08日 | 阅读数:3007

ES版本6.0.0、6.2.2,我服务器是8核32G内存,数据量为千万级别,大概500G。根据官方文档建议堆内存设置不应超过总内存的1/2,因此我设置的堆内存是14G,经测试发现在高并发现查询速度竟然比不上堆内存设置为2G的情况,这是什么原因呢?请高手解答,谢谢!
已邀请:

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

摘一下wood的回复:根据经验,如果按照官方的建议,给ES heap的内存少于机器可用物理内存的一半,通常不会有什么问题。 
实际生产环境种,我们遇到过的相关问题场景: 预留的物理内存大大少于ES heap内存,从而在做大的查询聚合时,因为物理内存紧缺,mmap引起高频度的page in/page out,性能变得很差。

zqc0512 - andy zhou

赞同来自:

你一共32G,是不是还有其它应用在上面跑?
14G 是ES JVM内存么?
慢的时候要看监控系统资源,看看什么地方慢,14G*2=28 +4 G =32 系统配置内存少了。
修改成8G看看。

要回复问题请先登录注册