Amazon OpenSearch Service 클러스터 상태 및 성능이 저하되는 것을 확인했습니다.
간략한 설명
각 샤드는 유지 관리에 일정량의 CPU/JVM 리소스를 사용합니다. 샤드가 너무 많으면 클러스터 성능이 심각하게 저하될 수 있습니다. 샤드가 너무 많으면 전체 클러스터가 응답하지 않을 수 있습니다.
클러스터가 정상 상태이고 예상대로 작동하는지 확인하려면 OpenSearch Service 모범 사례를 따르십시오.
샤드가 너무 많을 때 나타나는 증상
클러스터에 다음 증상 중 하나 이상이 있는 경우 해결 단계를 완료하십시오. 도메인이 너무 많은 샤드의 영향을 받는지 확인하려면 시간 경과에 따른 클러스터 상태 메트릭의 추세를 검토하세요.
- 노드당 1,000개 이상의 샤드
- 크기가 작은 샤드가 각각 10GB 미만인 인덱스.
- 일관된 노드 삭제.
- 높은 JVM/CPU 리소스 메트릭이 있습니다.
- 블루 및 그린 배포의 복잡성
- 클러스터 상태는 선택된 마스터가 처리하기가 매우 어렵습니다.
- T 인스턴스 유형이 사용 중입니다. 또는 더 작은 인스턴스 유형이 사용 중입니다. 예를 들어 c5.large 인스턴스 유형이 사용 중입니다.
해결 방법
도메인 트렌드 검토
3/6/12/14개월 범위를 사용하여 도메인의 Amazon CloudWatch 지표를 검토할 수 있습니다. 샤드 생성이 일정한 간격으로 발생하는 경우 그래프의 시간 창을 늘리십시오. 그렇지 않으면 전체 건강 추세 기록을 볼 수 없습니다. 참고: 지표가 더 긴 시간 범위에서 제대로 로드되려면 지표 기간을 1시간으로 변경해야 합니다.
샤드가 너무 많은 도메인에서 다음과 같은 현상이 발생합니다.
- Shards.active 카운트 증가 샤드 수가 노드당 총 샤드 1,000개를 초과한 후 클러스터의 트래픽이 증가하면 클러스터의 상태가 위험해집니다. 이러한 위험은 샤드 수가 증가함에 따라 검색 요청으로 인한 트래픽이 발생할 때 증가합니다.
- 노드 삭제는 클러스터의 노드 지표가 최소/최대/평균 통계에서 실선이 아닐 때 발생합니다. JVM 메모리 제한에 도달하면 OpenSearch 서비스 프로세스가 노드에서 실행되지 않습니다. 그러면 관리 서비스가 프로세스를 자동으로 다시 시작합니다.
- JVMMemoryPressure이 증가합니다. G1 가비지 컬렉션 (G1GC) 의 빈도가 높아지고 효율성이 떨어지면 최소/평균/최대값이 수렴합니다. 이상적인 상태에서 이 메트릭은 톱니 모양으로 0-75% 사이에서 진동합니다. JVM 메모리 압력이 가중되었을 때 75% 를 위반하고 평균 JVM 메모리 압력이 75% 를 위반하면 초기 영향이 발생합니다. OpenSearch Service의 JVM 및 가비지 컬렉션에 대한 자세한 내용은 Amazon OpenSearch Service의 JVM 메모리 압력 지표 변경 이해를 참조하십시오. 자세한 내용은 OpenSearch Service 클러스터의 높은 JVM 메모리 부족 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
- CPUUtilization 이 증가합니다. 클러스터는 유지 관리하는 샤드의 가비지 컬렉션에 더 많은 리소스와 시간을 소비합니다.
샤드가 너무 많으면 문제 해결
너무 많은 샤드 문제를 해결하려면 다음 해결 방법 중 하나를 선택하십시오.
샤드 개수 줄이기
사용 가능한 JVM 힙 메모리를 기반으로 노드당 샤드 수를 제한하는 것이 OpenSearch 모범 사례입니다. JVM 힙의 GiB당 샤드가 20-25개를 넘지 않아야 합니다. 오픈서치 매니지드 서비스에서 JVM 힙의 크기 제한은 32GiB입니다. 이 제한은 노드당 최대 640-800개의 샤드를 보유할 수 있음을 의미합니다. 클러스터 설정을 통해 수정할 수 있는 샤드는 노드당 1,000개로 제한됩니다.
데이터가 필요하지 않은 경우 이전 인덱스를 삭제하세요. 오래된 인덱스 데이터를 삭제하기 전에 수동으로 스냅샷을 생성하세요.
회전 인덱스를 ISM과 함께 사용할 때는 다음 사항에 유의하십시오.
- 샤드 전략이 인덱스를 샤드 크기 범위 (10~50gb) 에 두는 것이 가장 좋은 방법인지 검토하세요. 예를 들어 일일 ISM 인덱스와 기본 5:1 샤딩을 사용한다고 가정해 보겠습니다. 이렇게 하면 하루에 10개, 한 달에 최대 300개의 샤드가 생성됩니다.
- 인덱스 템플릿을 사용하면 규모가 작은 일별 인덱스의 샤드 수를 줄일 수 있습니다. 자세한 내용은 OpenSearch 웹 사이트의 색인 템플릿을 참조하십시오. 참고로 이는 클러스터에서 새로 생성된 인덱스에만 영향을 미치며 클러스터 상태를 즉시 개선하지는 않습니다.
- OpenSearch 재색인 API를 사용하여 이전의 일별 및 주별 색인을 월별 색인으로 결합할 수 있습니다. 자세한 내용은 OpenSearch 웹 사이트에서 하나 이상의 색인 결합을 참조하십시오. 그런 다음 너무 작은 지수가 생성되지 않도록 ISM 지수의 회전 기간을 변경하십시오.
인스턴스 확장
다음을 실행하세요.
- 확장하거나 축소하는 것은 실행 가능한 장기적 솔루션이 아닙니다. 반드시 오픈서치 서비스 모범 사례를 따르십시오.
- 인스턴스 유형을 확장하면 노드당 사용 가능한 리소스와 노드에서 처리할 수 있는 총 샤드 수가 증가합니다.
- 데이터 노드 수를 확장하면 노드당 샤드 수가 감소합니다. 이 감소는 다른 노드에 미치는 영향을 완화합니다.
관련 정보
OpenSearch 웹사이트에서 OpenSearch 인덱스 샤드 크기 최적화