基本配置:
docker run -d --name esnode01 \
-v /home/workspace/elasticsearch/data:/usr/share/elasticsearch/data \
--ulimit memlock=-1:-1 \
--ulimit nofile=65535:65535 \
-p 9200:9200 \
-p 9300:9300 \
-e node.name=esnode01 \
-e node.data=true \
-e node.master=true \
-e network.publish_host=$ip01 \
-e discovery.seed_hosts=$ip02:9300 \
-e cluster.initial_master_nodes=esnode01,esnode02 \
-e cluster.name=es-docker-cluster \
-e bootstrap.memory_lock=true \
-e "ES_JAVA_OPTS=-Xms31g -Xmx31g" \
-e http.cors.enabled=true \
-e http.cors.allow-origin=* \
--restart=always \
docker.elastic.co/elasticsearch/elasticsearch:7.2.0
{
"mapping": {
"properties": {
"question": {
"type": "text"
},
"update_time": {
"type": "date"
}
}
}
}
查询词句:
POST /index_name/_search
{
"from": 0,
"size": 50,
"query": {
"match": {
"question": text
}
}
}
问题:大多数查询花费的时间<20 ms,有时,“ took”字段等于100ms,200ms到900 + ms。
分析:
1. kibana监视显示没有很高的索引率,没有很长的GC时间,没有很高的系统负载,没有两个很多段,甚至没有很高的搜索和查询延迟;2. search_slow_log显示没有花费很长时间的查询,配置文件API显示的查询非常小time_in_nano任何建议都非常感谢
基本配置:群集:两个节点作为主合格节点和数据节点es版本:7.2.0 jvm堆大小:每个节点节点内存31GB:每个节点256GB主/副本分片:1/1磁盘:每个2TB + ...
[how to tune for search speed上有一篇很棒的文章。