Elasticsearch 1.3.2를 설치 한 CentOS 6.5 서버가 있습니다.
내 elasticsearch.yml
구성 파일은 elasticsearch를 기본값으로 사용하는 것의 최소한의 수정입니다. 주석 처리 된 모든 행을 제거하면 다음과 같습니다.
cluster.name: xxx-kibana
node:
name: "xxx"
master: true
data: true
index.number_of_shards: 5
index.number_of_replicas: 1
path:
logs: /log/elasticsearch/log
data: /log/elasticsearch/data
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.multicast.enabled: false
Elasticsearch는 기본적으로 압축을 사용하도록 설정 해야 하며 압축률을 50 %에서 95 %까지 올리는 다양한 벤치 마크를 읽습니다. 불행히도 필자의 경우 압축률은 -400 %입니다. 즉, ES로 저장된 데이터는 같은 내용의 텍스트 파일보다 4 배 많은 디스크 공간을 차지합니다 . 보다:
12K logstash-2014.10.07/2/translog
16K logstash-2014.10.07/2/_state
116M logstash-2014.10.07/2/index
116M logstash-2014.10.07/2
12K logstash-2014.10.07/4/translog
16K logstash-2014.10.07/4/_state
127M logstash-2014.10.07/4/index
127M logstash-2014.10.07/4
12K logstash-2014.10.07/0/translog
16K logstash-2014.10.07/0/_state
109M logstash-2014.10.07/0/index
109M logstash-2014.10.07/0
16K logstash-2014.10.07/_state
12K logstash-2014.10.07/1/translog
16K logstash-2014.10.07/1/_state
153M logstash-2014.10.07/1/index
153M logstash-2014.10.07/1
12K logstash-2014.10.07/3/translog
16K logstash-2014.10.07/3/_state
119M logstash-2014.10.07/3/index
119M logstash-2014.10.07/3
622M logstash-2014.10.07/ # <-- This is the total!
대:
6,3M /var/log/td-agent/legacy_api.20141007_0.log
8,0M /var/log/td-agent/legacy_api.20141007_10.log
7,6M /var/log/td-agent/legacy_api.20141007_11.log
6,7M /var/log/td-agent/legacy_api.20141007_12.log
8,0M /var/log/td-agent/legacy_api.20141007_13.log
7,6M /var/log/td-agent/legacy_api.20141007_14.log
7,6M /var/log/td-agent/legacy_api.20141007_15.log
7,7M /var/log/td-agent/legacy_api.20141007_16.log
5,6M /var/log/td-agent/legacy_api.20141007_17.log
7,9M /var/log/td-agent/legacy_api.20141007_18.log
6,3M /var/log/td-agent/legacy_api.20141007_19.log
7,8M /var/log/td-agent/legacy_api.20141007_1.log
7,1M /var/log/td-agent/legacy_api.20141007_20.log
8,0M /var/log/td-agent/legacy_api.20141007_21.log
7,2M /var/log/td-agent/legacy_api.20141007_22.log
3,8M /var/log/td-agent/legacy_api.20141007_23.log
7,5M /var/log/td-agent/legacy_api.20141007_2.log
7,3M /var/log/td-agent/legacy_api.20141007_3.log
8,0M /var/log/td-agent/legacy_api.20141007_4.log
7,5M /var/log/td-agent/legacy_api.20141007_5.log
7,5M /var/log/td-agent/legacy_api.20141007_6.log
7,8M /var/log/td-agent/legacy_api.20141007_7.log
7,8M /var/log/td-agent/legacy_api.20141007_8.log
7,2M /var/log/td-agent/legacy_api.20141007_9.log
173M total
내가 도대체 뭘 잘못하고있는 겁니까? 데이터가 압축되지 않는 이유는 무엇입니까?
릴리스 노트에서 ( 압축이 먼저 나온 시점) index.store.compress.stored: 1
구성 파일에 임시로 추가 했지만 아직 차이가 있는지 여부를 알 수 없으므로 압축이 켜져 있어야합니다. 기본적으로 요즘 …elasticsearch 0.19.5
store
답변
Elasticsearch는 데이터를 자동으로 축소하지 않습니다. 이것은 모든 데이터베이스에 해당됩니다. 원시 데이터를 저장하는 것 외에도 각 데이터베이스는 메타 데이터를 함께 저장해야합니다. 일반 데이터베이스는 db-admin이 사전에 선택한 열에 대한 색인 만 저장합니다 (더 빠른 검색을 위해). ElasticSearch는 기본적으로 모든 열을 색인화하기 때문에 다릅니다 . 따라서 인덱스를 매우 크게 만들지 만 데이터를 검색하는 동안 완벽한 성능을 제공합니다.
일반 구성에서는 인덱싱 후 원시 데이터가 4-6 배 증가합니다. 실제 데이터에 크게 의존하지만. 그러나 이것은 실제로 의도 된 동작입니다.
따라서 데이터베이스 크기를 줄이려면 RDBM에서와 달리 다른 방법으로 이동해야합니다. 색인화 할 필요가없는 열을 색인화하거나 저장하지 않도록 제외하십시오.
또한 압축을 켤 수 있지만 “문서”가 큰 경우에만 향상되며 로그 파일 항목에는 해당되지 않습니다.
https://github.com/jordansissel/experiments/tree/master/elasticsearch/disk에 대한 비교 및 유용한 팁이 있습니다.
그러나 검색에는 비용이 따른다는 점을 기억하십시오. 지불 비용은 디스크 공간입니다. 그러나 유연성을 얻습니다. 저장 용량이 초과되면 가로로 늘어납니다! ElasticSearch가이기는 곳입니다.