我们设置了7个节点的elasticsearch集群.每个节点都具有16G RAM,8核心CPU,centos 6等配置.
Elasticsearch版本:1.3.0
堆内存为 – 9000米
1 Master (Non data)
1 Capable master (Non data)
5 Data node
有10个索引,其中一个索引有5500万个文档[254Gi(508Gi with replica)]大小,所有索引都有大约20k文档.
每1秒就有5-10个新文档正在编制索引.
但问题是搜索有点慢.差不多平均为2000毫秒到5000毫秒.有些查询在1秒内完成.
制图:
{
"my_index": {
"mappings": {
"product": {
"_id": {
"path": "product_refer_id"
},
"properties": {
"product_refer_id": {
"type": "string"
},
"body": {
"type": "string"
},
"cat": {
"type": "string"
},
"cat_score": {
"type": "float"
},
"compliant": {
"type": "string"
},
"created": {
"type": "integer"
},
"facets": {
"properties": {
"ItemsPerCategoryCount": {
"properties": {
"terms": {
"properties": {
"field": {
"type": "string"
},
"size": {
"type": "long"
}
}
}
}
}
}
},
"fields": {
"type": "string"
},
"from": {
"type": "string"
}
"id": {
"type": "string"
},
"image": {
"type": "string"
},
"lang": {
"type": "string"
},
"main_cat": {
"properties": {
"Technology": {
"type": "double"
}
}
},
"md5_product": {
"type": "string"
},
"post_created": {
"type": "long"
},
"query": {
"properties": {
"bool": {
"properties": {
"must": {
"properties": {
"query_string": {
"properties": {
"default_field": {
"type": "string"
},
"query": {
"type": "string"
}
}
},
"range": {
"properties": {
"main_cat.Technology": {
"properties": {
"gte": {
"type": "string"
}
}
},
"sub_cat.Technology.computers": {
"properties": {
"gte": {
"type": "string"
}
}
}
}
},
"term": {
"properties": {
"product.secondary_cat": {
"type": "string"
}
}
}
}
}
}
},
"match_all": {
"type": "object"
}
}
},
"secondary_cat": {
"type": "string"
},
"secondary_cat_score": {
"type": "float"
},
"size": {
"type": "long"
},
"sort": {
"properties": {
"_uid": {
"type": "string"
}
}
},
"sub_cat": {
"properties": {
"Technology": {
"properties": {
"audio": {
"type": "double"
},
"computers": {
"type": "double"
},
"gadgets": {
"type": "double"
},
"geekchic": {
"type": "double"
}
}
}
}
},
"title": {
"type": "string"
},
"product": {
"type": "string"
}
}
}
}
}
}
我们正在使用Default Analyzer.
有什么建议吗?这种配置是不够的?
最佳答案 看起来索引不能适合内存,因此会有更多的磁盘I / O在进行.你使用固态硬盘吗?如果没有,你应该得到一些.
除此之外,您的节点需要更多资源(内存,CPU)来处理索引大小.
我对这里的尺寸感到有点惊讶:“仅”5500万个文件大约250GB,我看不到你在那里存储任何更大的blob(我可能会错,很难从映射定义中看到).也许您可以考虑保留一些未分析的数据,以防您不需要查询,但只需检索它.这会减少索引大小.
除此之外,我没有其他想法,没有更详细地了解所有相关的基础设施.