문제해결

이 페이지에서는 다양한 오류 시나리오를 설명하고 오류 해결을 위한 안내를 제공합니다.

복제 시나리오

이 섹션에서는 인스턴스에서 발생할 수 있는 복제 문제를 설명합니다.

복제 지연은 어떻게 모니터링하나요?

Memorystore for Valkey에는 /instance/replication/maximum_offset_diff 측정항목이 있습니다. 이 측정항목은 기본 인스턴스의 노드에 대한 최대 복제 오프셋 차이 (바이트)를 모니터링합니다.

복제 오프셋 차이를 낮게 유지하면 복제본이 전체 동기화 작업보다 더 자주 그리고 더 낮은 비용으로 증분 동기화 작업을 실행할 수 있습니다.

maximum_offset_diff 측정항목의 임곗값을 설정하는 것이 좋습니다. 임계값을 초과하면 Memorystore for Valkey에서 알림을 통해 알릴 수 있습니다.

인스턴스의 노드 유형에 따라 다음과 같이 임계값을 설정하는 것이 좋습니다.

  • 노드 유형이 shared-core-nano, standard-small 또는 highmem-medium인 경우 임계값을 64MB 미만으로 설정합니다.
  • 노드 유형이 highmem-xlarge인 경우 기준점을 1GB 미만으로 설정합니다.

기본 인스턴스와 복제본 간에 복제 지연이 있는 경우 어떻게 해야 하나요?

기본 인스턴스에 쓰기 작업이 너무 많고 복제본이 이러한 작업을 복제할 수 없는 경우 상당한 복제 지연이 발생할 수 있습니다. 이 문제를 해결하려면 인스턴스의 샤드 수를 늘려 인스턴스의 용량을 확장하는 것이 좋습니다.

메모리 관리 시나리오

이 섹션에서는 인스턴스에서 발생할 수 있는 메모리 관리 문제를 설명합니다.

인스턴스의 메모리 스트레스를 확인하는 데 사용할 수 있는 측정항목은 무엇인가요?

Memorystore for Valkey 인스턴스의 메모리 사용량을 모니터링하려면 /instance/memory/maximum_utilization 측정항목을 확인하는 것이 좋습니다. 인스턴스의 메모리 사용량이 80% 에 근접하고 데이터 사용량이 증가할 것으로 예상되면 인스턴스 크기를 수직 확장하여 성능을 개선하고 새 데이터를 위한 공간을 확보하세요.

모니터링 시나리오

이 섹션에서는 인스턴스에서 발생할 수 있는 모니터링 문제를 설명합니다.

Memorystore for Valkey 알림은 어떻게 설정하나요?

Cloud Monitoring을 사용하여 인스턴스에 설정한 임계값을 초과하는 측정항목이 있으면 알리도록 알림을 설정할 수 있습니다. Cloud Monitoring에서 알림을 설정하는 방법에 대한 자세한 내용은 메모리 사용량에 대한 Monitoring 알림 설정을 참고하세요.

연결 관리 시나리오

이 섹션에서는 인스턴스에서 발생할 수 있는 연결 관리 문제를 설명합니다.

연결 한도에 도달하거나 연결 시간 초과가 발생하면 어떻게 해야 하나요?

연결 한도에 도달하면 클라이언트가 서버에 연결되지 않습니다. 이를 연결 거부라고 합니다.

이 경우 다음 단계를 따르세요.

  • /instance/node/stats/rejected_connections_count 측정항목을 사용하여 인스턴스 노드가 최대 클라이언트 한도에 도달하여 Memorystore for Valkey에서 거부한 연결 수를 확인합니다.
  • /instance/node/clients/connected_clients 측정항목을 사용하여 인스턴스 노드에 연결된 클라이언트 수를 확인합니다. 이렇게 하면 인스턴스의 모든 노드가 한도 미만인지 확인할 수 있습니다.
  • client kill 명령어를 사용하여 유출되거나 원치 않는 연결을 중지합니다.
  • 클라이언트 애플리케이션에서 연결 수 또는 풀 크기를 줄입니다. 자세한 내용은 클라이언트 애플리케이션과 관련된 문서를 참고하세요.
  • 최대 클라이언트 한도를 조정합니다. 자세한 내용은 인스턴스 구성을 참고하세요.
  • 인스턴스의 연결 한도가 높아지도록 인스턴스를 더 큰 노드 유형으로 확장합니다.

제한 시간 시나리오

이 섹션에서는 인스턴스에서 발생할 수 있는 타임아웃 문제를 설명합니다.

I/O 시간 초과가 발생하면 어떻게 해야 하나요?

Memorystore for Valkey의 읽기 또는 쓰기 작업이 지정된 시간 내에 완료되지 않으면 I/O 시간 초과가 발생합니다. 이 타임아웃은 다양한 이유로 발생할 수 있습니다. 예를 들어 인스턴스의 하나 이상의 노드가 과부하되었을 수 있습니다.

I/O 제한 시간이 초과되면 다음을 수행합니다.

  • instance/cpu/maximum_utilization 측정항목을 사용하여 인스턴스에 있는 노드의 CPU 사용률을 0.0 (0%)~1.0 (100%) 범위에서 확인할 수 있습니다. 모든 노드의 CPU 사용률이 80% 미만인 것이 좋습니다. 자세한 내용은 CPU 사용량 권장사항을 참고하세요.
  • 서버의 시간 제한으로 인해 클라이언트가 서버에서 연결 해제되면 지수 백오프지터를 사용하여 다시 시도합니다. 이렇게 하면 여러 클라이언트가 동시에 서버에 과부하를 일으키는 것을 방지할 수 있습니다.

연결 오류 시나리오

이 섹션에서는 인스턴스에서 발생할 수 있는 연결 문제를 설명합니다.

방화벽 규칙으로 인한 연결 오류

방화벽 규칙으로 인해 Memorystore for Valkey에서 사용하는 포트가 차단되어 연결 오류가 발생할 수 있습니다. 인스턴스의 Private Service Connect 엔드포인트 모두의 모든 포트를 나열할 수 있도록 허용해야 합니다. 엔드포인트에 관한 자세한 내용은 예약된 네트워크 주소를 참고하세요.

조직 정책으로 인해 연결 오류가 발생했습니다.

Memorystore for Valkey 인스턴스에 대한 Private Service Connect 연결을 차단하는 조직 정책이 있을 수 있습니다.

조직 정책에서 .restrictPrivateServiceConnectProducer 정책을 사용하는 경우 Memorystore for Valkey 전용 폴더인 961333125034 폴더 번호를 허용 목록에 추가합니다. 예를 들면 다음과 같습니다.

name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
    rules:
      - values:
          allowedValues:
          - under:folders/961333125034

조직 정책에서 .disablePrivateServiceConnectCreationForConsumers 정책을 사용하는 경우 SERVICE_PRODUCERS을 허용 목록에 추가해야 합니다. 예를 들면 다음과 같습니다.

name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
    rules:
      - values:
          allowedValues:
          - SERVICE_PRODUCERS

클러스터 모드가 사용 중지된 인스턴스의 오류 처리

  • 읽기 복제본이 없는 인스턴스의 읽기 엔드포인트에 애플리케이션이 연결되면 연결이 닫히고 ERR no replicas found 오류 메시지가 표시됩니다. 이 경우 애플리케이션을 기본 엔드포인트에 연결하거나 인스턴스에 읽기 복제본을 추가해 보세요.

  • 장애 조치가 발생하면 애플리케이션의 기존 연결이 닫히고 ERR role change occurred 오류 메시지가 표시됩니다. 애플리케이션이 인스턴스의 읽기 엔드포인트에 연결되어 있고 인스턴스의 모든 읽기 복제본이 실패하는 경우에도 이 오류 메시지가 표시됩니다. 이 경우 애플리케이션은 지수 백오프를 사용하여 연결을 다시 시도해야 합니다.