Elasticsearch查询性能下降

时间:2014-10-29 11:17:32

标签: elasticsearch

我们设置了7个节点的elasticsearch集群。每个节点都具有16G RAM, 8 Core cpu, centos 6

等配置

Elasticsearch版本: 1.3.0
堆内存是 - 9000m

1 Master (Non data)
1 Capable master (Non data)
5 Data node

有10个索引,其中一个索引有5500万个文档[254Gi(508Gi with replica)]大小,所有索引都有大约20k文档。

每1秒就有5-10个新文档正在编制索引。

但问题是搜索有点慢。几乎平均为2000 ms5000 ms。有些查询是在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 有什么建议吗?这种配置是不够的?

2 个答案:

答案 0 :(得分:1)

看起来索引无法适应内存,因此会有更多的磁盘I / O在进行。你使用固态硬盘吗?如果没有,你应该得到一些。

除此之外,您的节点需要更多资源(内存,CPU)来处理索引大小。

我对这里的尺寸感到有些惊讶:约为250 GB"只是" 5500万个文档很庞大,我也没有看到你在那里存储任何更大的blob(我可能会错,很难从映射定义中看到它)。也许您可以考虑保留一些未分析的数据,以防您不需要查询,但只需检索它。这会减少索引大小。

除此之外,我没有其他想法,没有更详细地了解所有相关基础设施。

答案 1 :(得分:1)

要添加到Torsten Engelbrecht的答案,默认分析器可能是罪魁祸首的一部分。该分析器将每个单词的每个形式编入索引作为单独的标记,这意味着具有复杂共轭的语言中的单个动词可以被索引十几次。此外,这会降低搜索结果的质量。如果您的文档包含格式信息(HTML标记?),则同样适用。

更多,stop words are disabled by default,意味着每个""," a" ...例如英文也将被编入索引。

您应该考虑使用本地化分析器(可能是雪球分析仪吗?)并停止使用文档中使用的语言来限制反向索引大小,这样就可以提高性能。

另外,请考虑将not_analyzed字段设为md5,url,id和其他类型的不可搜索字段。