작성
·
23
0
안녕하세요
현재 max_shards_per_node가 1400으로 설정되어 있습니다.
그런데 _cat/allocation?v 명령어를 통해 노드당 샤드수를 보면 특정 노드 한개(1번노드)가 1500가까이 할당되어 있는 상황입니다. 현재 롤오버되고 있는 인덱스의 샤드는 정상적으로 1번 노드에 할당되고 있습니다.
이런경우는 어떤경우인지 알 수 있을까요?
답변 2
0
max_shards_per_node 설정 이슈라기보다는, 특정 노드에 샤드가 몰리는 현상으로 이해했습니다. 맞나요? 😃
전체 샤드가 노드에 얼마나 균등하게 배치되는지는 인덱스별 샤드 개수에 따라 달라지고, 샤드 배치 전략의 영향을 받기 때문에 모든 노드가 비슷한 수의 샤드를 가지지 않을 수도 있습니다. 샤드 밸런싱을 맞추기 위해 샤드가 지속적으로 이동 중일 가능성도 있습니다.
고려해야 할 변수가 많아서 딱 어떤 문제다 라고 말씀드리긴 어렵지만, 우선 인덱스별 샤드 수가 고르게 설정되어 있는지, 각 노드의 저장 공간은 유사한지 등을 확인해 보시면 좋을 것 같습니다.
max_shards_per_node 이상의 샤드가 노드에 들어가면 리밸런싱이 일어 나게 됩니다. 그리고 이런 리밸런싱은 CPU를 비롯해 리소스를 많이 사용하기 때문에 전체적인 성능 저하가 발생할 수 있습니다.
제가 추측해 보건데, 만약 리밸런싱이 계속해서 발생하고 있다면 전체 샤드의 수 > max_shards_per_node * 노드 수
의 상황이 아닐까 싶습니다. 그래서 계속해서 리밸런싱이 일어나는 건 아닐까요? 그래서 샤드가 여기로 옮겨 갔다가, max_shards_per_node 설정에 의해 또 다른 노드로 옮겨 갔다가가 반복되는 상황은 아닐까 싶습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
haechang.jung님께서 질문하신 내용은 Elasticsearch에서 노드당 샤드 수가 max_shards_per_node 설정 값을 초과한 경우에 대한 것입니다. 이와 관련하여 참고할 수 있는 질문과 답변을 몇 가지 찾아보았습니다.
max_shards_per_node
는 노드당 허용되는 최대 샤드 수를 정의하지만, 이 설정이 실제 상황에서 엄격하게 적용되지 않는 경우가 발생할 수 있습니다. 이는 다음과 같은 이유에서 비롯될 수 있습니다:
일반적으로, 클러스터 및 샤드 상태를 모니터링하고 필요시 설정 값을 조정하는 것이 중요합니다. 설정 값을 변경한 후에는 클러스터를 재시작하여 설정이 제대로 적용되도록 하는 것이 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
max_shards_per_node가 설정되면 무조건 노드에 그 이상의 샤드가 허용되지 않을것이라고 생각했습니다.
물론 shrink/forcemerge를 수행하면서 샤드가 하나의 노드로 모이고 있는 상황이 있긴 합니다. 이런 케이스때문에 샤드가 불균형해지고 max_shards_per_node 이상의 샤드가 노드에 들어가는것이라고 생각하고는 있습니다만 이 경우 max_shards_per_node 이상의 샤드가 노드에 들어간게 문제가 될 여지는 없는지가 궁금합니다.