Elastic Docker Compose에서 영감을 얻은 ElasticSearch, Logstash, Filebeat 및 Kibana로 도커 설정을 실행 중입니다. 시스템 (Filebeat-> Logstash-> ElasticSearch)에 처음으로 15GB의 로그 파일을로드해야하지만 성능에 문제가 있습니다.ElasticSearch 초기 대량 가져 오기 우수 사례
Filebeat/Logstash가 ElasticSearch에 너무 많은 작업을 출력하고있는 것처럼 보입니다. 몇 시간 후, 나는이 같은 ElasticSearch 오류의 무리를보기 시작 : https://www.elastic.co/guide/en/elasticsearch/guide/master/indexing-performance.html#segments-and-merging : 나는을 조절 병합을 사용하지 않도록 설정하는 방법에 대한이 오래된 문서 문서를 발견했습니다
[INFO ][o.e.i.IndexingMemoryController] [f8kc50d] now throttling indexing for shard [ log-2017.06.30 ]: segment writing can't keep up
. 내가 위의 문제를 해결할 수있는 방법
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "transient setting [indices.store.throttle.type], not dynamically updateable"
}
],
"type": "illegal_argument_exception",
"reason": "transient setting [indices.store.throttle.type], not dynamically updateable"
},
"status": 400
}
:
PUT /_cluster/settings
{
"transient" : {
"indices.store.throttle.type" : "none"
}
}
그러나 (ElasticSearch 6) 현재 버전에서이 날이 오류를 제공
?VM에는 4 개의 CPU 코어 (Intel Xeon E5-2650)가 있으며 ElasticSearch에는 4GB RAM, Logstash 및 Kibana 각각 1GB가 할당됩니다. "swapoff -a"를 사용하여 스와핑을 사용할 수 없습니다. X- 팩 및 모니터링이 활성화됩니다. 이 로그 서버에는 하나의 ES 노드 만 있습니다. 이 초기 대량 가져 오기를 위해 다중 노드가 있어야합니까?
EDIT1 :
및 이 refresh_interval이 더 잘 수행 할 것 같습니다 number_of_replicas 변경. 여전히 테스트 중입니다. 당신이 압력을 줄일 필요가 있으므로
PUT /log-*/_settings
{
"index.number_of_replicas" : "0",
"index.refresh_interval" : "-1"
}
클러스터 통계 (노드, 샤드, 복제본 수, 하드웨어 종류)는 무엇입니까? iostat, JVM 통계 등 다른 통계가 있습니까? 다른 설정을 변경 했습니까? – Egor
@Egor 귀하의 추천에 감사드립니다. 추가 정보로 질문을 업데이트했습니다. – dhrm
logstash에서 작업자 스레드 수를 줄일 수 있습니다 (시작할 때 -w 옵션 사용). elasticsearch의 경우 사용 가능한 RAM의 절반을 할당하고 나머지는 파일 시스템으로 남겨 두어야한다는 것을 기억합니다 ("Xmx를 실제 RAM의 50 % 이상으로 설정하십시오"https://www.elastic.co/guide에서 /en/elasticsearch/reference/master/heap-size.html). – baudsp