본문 바로가기

Elasticsearch

[ES] 샤드의 역습

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

로그분석용으로 ELK를 운영하고 있습니다.

16년초부터 지금까지 운영중이고 900기가 조금넘는 용량에 11억개 조금 넘는 도큐먼트를 운영중입니다.

현재까진 잘 쓰고 있긴한데 최근 고민거리가 생겼습니다.


ES 5.0.0버전을 사용하고 있는데 이 버전부턴 조회시 샤드가 1000개가 넘어가면 검색이 안 됩니다.


저 메세지에 나오는것처럼 'action.search.shard_count.limit' 옵션을 조정해서 사용해도 되긴합니다.

https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search-search.html

위 링크에 나오듯이 다수의 샤드는 CPU와 메모리에 부하가 집중되는것을 방지하기 위하여 

기본적으로 제한해뒀다고 합니다.

이는 보통 큰사이즈의 샤드를 소수로 운영하는것에 맞추어둔거라는군요.

(아무생각없이 일자별로 인덱싱을 나눈 내가 모지린거지....ㅠㅠ)


어쨌든, 당장 해결을 위해선 shard count limit를 증가시켜야만 했습니다.

curl -XPUT TEST_1:9200/_cluster/settiings -d'

{ "persistent" : { "action.search.shard_count.limit" : "3000" } }'

수정 후 메모리를 조금 더(2~4G) 사용하긴 하지만, 일단 검색은 잘 됩니다.

추후 샤드 개수 조정에 대해 생각이 좀 필요할듯합니다.

현재 운영중인 ES의 샤드용량의 경우 작은건 55kb 에서 많게는 수백mb까지 있습니다.

하지만 보통 말하는 샤드의 최대용량인 50G(공식적인 수치는 아님)에 비하면 초라하기 그지없는 용량이죠.

이후 샤드개수 변경을 위하여 ES를 개편해야할지 고민을 좀 해봐야겠네요.


모쪼록 다른분들은 저같은 경우가 없으시길 바랍니다 :)