記憶永続化用のメモブログ

脳内に揮発性記憶領域しかないことに気づいたので作成

Elasticsearchで色々やったことをメモ

大量のデータをElasticsearchで扱ったときに色々と起きた問題の対処をメモ(雑)

Elasticsearch v1.0.1
Amazon EC2
JDK 1.7.0_21

問題

データ量が多くなってから検索系のクエリを投げるとElasticsearchが停止する
indexを日付別に切っているが、結構な日数分を集計するクエリを投げるとOOMになってしまった。

原因(多分)

kibanaのクエリが結構エグい

色々なグラフを1画面に乗せておくと1回のリロードで大量のクエリがElasticsearchに投げられていた。
根本解決にはならないけど、kibanaの1画面に乗せる画面数を減らした

フィールドキャッシュの上限が無制限だった

設定ファイルで指定してあげないとキャッシュがひたすら溜まって行く模様だった。
indices.fielddata.cache.expire
indices.fielddata.cache.size
を設定してあげた。
あとシャード数を増やしてサーバ台数も増設して1台あたりの負荷を分散させた。

CPUリソースが足りない

びっくりするくらい検索にCPUを使っていたので、EC2インスタンスタイプをCPU上げた。
ただ最終的には設計から見直して検索によく使う部分を入れるindexを作って、そのindexに登録されるデータ量を減らしたら劇的にCPUを使わずに検索出来るようになった。
大量のデータが存在するindexに検索にかけないように設計しなきゃダメ。


まとめ中