CentOS 6.5サーバーをインストールしましたElasticsearch 1.3.2 。
俺の 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には compression ON デフォルト が必要です。圧縮率を最低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は、デフォルトでevery列にインデックスを付けるため、異なります。したがって、インデックスを非常に大きくしますが、その一方で、データを取得しながら完璧なパフォーマンスを提供します。
通常の構成では、インデックス作成後、生データの4〜6倍の増加が見られます。実際のデータに大きく依存しますが。しかし、これは実際に意図された動作です。
したがって、データベースのサイズを小さくするには、RDBMで行ったのとは反対の方法をとる必要があります。
さらに、圧縮をオンにすることもできますが、これは「ドキュメント」が大きい場合にのみ改善されます。これは、おそらくログファイルエントリには当てはまりません。
ここにいくつかの比較と役立つヒントがあります: https://github.com/jordansissel/experiments/tree/master/elasticsearch/disk
しかし、覚えておいてください。検索にはコストが伴います。支払うコストはディスク容量です。しかし、柔軟性が増します。ストレージサイズを超える場合は、水平方向に拡大してください。これがElasticSearchの勝利です。