我们有一个具有以下详细信息的集群: 1. OS: Windows 7 (64位) 2.节点数:2 (i7处理器,8Gb内存) 3. ES版本: 2.4.4
我们创建了一个包含以下细节的索引: 1.索引大小: 86 Gb 2.碎片数: 12 . 3.副本数目:0. 5.文档数量:1.4亿6.字段数: 15 .对于大多数字段,我们设置了" Index ":"not_analyzed“7.对于很少的字段,我们设置了" index ":"no”.我们不执行任何全文搜索、聚合或排序9.对于两个字段,我们使用的是距离1的模糊性编辑
12个碎片平均分布在2个节点上(每个6个碎片)。我们正在这个集群上运行多搜索查询,其中每个多搜索请求包含6个单独的查询。
我们的查询花费了太多的时间来执行。从“接受”字段中我们可以看到,每个单独的查询都在3-8秒的范围内花费时间。它们很少在毫秒内执行。
平均结果集中返回的记录计数约为800条(最大为10k记录,最小为10条记录)。
当我们在相对较小的数据集(1,000万条记录,大小为7 Gb )上运行相同的测试时,每个单独的查询都花费了50-200毫秒的时间。有人能提出什么可能导致我们的查询运行缓慢时,索引大小增加吗?
响应xeraa:后的更新
- _Following are the 2 sample queries that are used. A total of 6 similar queries are wrapped in multi-search._ POST /_msearch {“索引”:“学校”}{“查询”:{ "bool“:{”必须“:[{ "bool”:{“应”:{“范围”:{“标记”:{“出发地”:"100000000“"to“:"200000000","include_lower”:true,"include_upper“:true }} },{“嵌套”:{“查询”:{“匹配”:{“查询”:"25 ",“字段”:"subject.chapter“},“路径”:“主题”}{“索引”:“学校”}{“查询”}{ "bool“:{”必须“:{”嵌套“:{”查询“:{“匹配”:{“查询”:"A100123",“字段”:"student.id“,”模糊“:"1”},“路径”:“学生”}}}
发布于 2017-02-20 22:36:14
1.4亿个文档意味着86 8GB的数据,那么我猜1000万个文档转换为不到8GB的数据。因此,较小的数据集可以从内存中(至少大部分是通过两个8GB节点提供),而更大的数据集则需要从磁盘中处理。也许你也在使用旋转盘?在任何情况下,物理定律会使你的整个数据集比小数据集慢。
你可以研究各种事情:
https://stackoverflow.com/questions/42351249
复制相似问题