티스토리 뷰

개발 노트/Elastic Search

Elastic Search 장애처리

오리지날초이 2013. 10. 28. 15:53

그동안 대용량 데이터를 바탕으로 Hadoop, Hive, Es 가 결합된 검색시스템을 운용 중이었는데 갑작스럽게 장애가 발생하였다.


정황상 ES head plug in 에서 발생시킨 쿼리가 영향을 끼친 것 으로 보인다. (거의 확실함)


쿼리 자체는 범위가 한정된 지극히 일반적인 쿼리 문이었으나, 검색용 index 를 지정하지 않아 부하가 발생하고,


쿼리 리퀘스팅 상태가 완료되지 않은 채로, 여러 건의 쿼리가 누적되어 부하가 급증한 것으로 보인다.


Q) 내 경험 상 ES head plug in 의 검색은 cli 에서 curl 을 이용한 것보다 항상 느렸다. 

    그동안 인덱스를 지정하지 않아서 그랬던 것인가? plug in 의 any request 기능에 문제가 있는 것인가?

    head pluging 을 이용할 시에 성능에 관한 report 가 있는가?

    쿼리 누적으로 인한 성능저하 report 가 있는가?




금번 경우는 제대로 완료하지 못한 쿼리가 누적되어 ES 전체 노드에서 부하가 급증한 현상이 발생했다.


이를 해결하기 위해 ES 전체 노드를 재기동하였는데 이때의 과정은 다음과 같았다.



1. 전체 노드를 다운시키고 재기동하게 되면 unsigned shard -> initialiizing shard -> relocating shard 의 순서를 거친다.


   일부 노드를 다운시키고 재기동하면 unsigned 과정을 거치지 않는다?


2. _plugin/head 에서 회색샤드는 unsigned, 붉은색 샤드는 initializing, 보라색 샤드는 relocating 을 의미한다.


3. primay shards 가 확보되면 status yellow 로 전환된다.


4. status yellow 상태에서부터는 조회 가능하다, 하지만 속도는 조금 느리다.


    내가 운영 중인 site 의 경우 yellow 까지 2시간 가량, green 까지 4시간 정도 소요한다.


5. es 에 문제가 생겼을 시 재처리는 일반적인 json 백업과 벌크 업로드를 이용하도록 하자.


6. es 재기동시 빠른 재기동을 위한 screen shot 기능이 없을까?









728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함