Основные конфигурации :
- кластер: два узла в качестве основного приемлемого узла и узла данных
- es версия: 7.2.0
- Размер кучи jvm: 31 ГБ на узел
- память узла: 256 ГБ на узел
- основной / реплики реплики: 1/1
- диск: 2 ТБ + на узел
- режим развертывания: докер
- хост-система: debian 8
- развертывание конфигурации:
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"
}
}
}
}
- индекс документов: 11k
- ps:
- столбец вопрос китайские слова
- включен медленный поиск журнала "index.search.slowlog.level":"debug", "index.search.slowlog.threshold.fetch.debug": "5ms", "index.search.slowlog.threshold.query.debug": "1ms"
- без высоких параллельных запросов
Фрагмент запроса:
POST /index_name/_search
{
"from": 0,
"size": 50,
"query": {
"match": {
"question": text
}
}
}
Проблема: Время выполнения большинства запросов <20 мс. Время от времени поле «взял» равно100 мс, 200 мс, до 900 + мс .. </p>
Анализ: 1. kibАналитический мониторинг не показывает высокой скорости индексации, длительного времени GC, высокой загрузки системы, двух сегментов, даже большой задержки поиска и запросов;2. search_slow_log не показывает запросов с большим количеством времени, API профиля показывает очень маленький запрос time_in_nano
Любые советы действительно приветствуются