Fleet 리소스 사용률 측정항목

이 페이지에서는 Fleet 및 팀 리소스 사용률 측정항목에 대해 자세히 살펴봅니다. 측정항목을 계산하는 방법을 설명하고, 리소스 사용량을 최적화하기 위해 이러한 측정항목을 사용하는 방법에 대한 팁을 제공합니다.

측정항목은 다음 대시보드에서 확인할 수 있습니다.

측정항목은 클러스터가 물리적으로 사용 가능한 리소스 또는 온프레미스 하드웨어에 할당한 리소스를 얼마나 효율적으로 사용하고 있는지 설명합니다. 이 정보를 사용해서 Fleet 또는 팀 범위 수준에서 규모에 따른 리소스 사용률의 효율성을 이해할 수 있습니다. 이를 통해 클러스터 및 네임스페이스 간에 클러스터 크기 및 리소스 할당을 최적화하거나 애플리케이션 팀이 리소스를 요청하고 예약하는 방법을 최적화할 수 있습니다.

리소스 사용률 측정항목 사용

다음은 콘솔의 측정항목을 사용하여 문제를 파악하고 해결하는 데 유용한 팁입니다.

  • Fleet의 총 CPU/메모리/디스크 사용률이 지난 7일 동안 예기치 않게 높거나 낮은 사용률을 나타내는 경우 항상 해당 Fleet별 CPU/메모리/디스크 사용률 차트를 확인하여 예상치 못한 사용률이 일정한지 또는 사용량 급증으로 인해 발생했는지 평가합니다.
  • 클러스터별 상위 CPU/메모리/디스크 사용률에 따라 나머지와 다르게 작동하는 개별 클러스터가 표시된 경우 해당 클러스터를 더 면밀히 조사하는 것이 좋습니다. 가능하면 클러스터의 크기를 조정하는 것이 좋습니다.
  • 네임스페이스별 상위 CPU/메모리/디스크 사용률에 지난 7일 동안 예상치 않은 급증이 표시되면 특정 워크로드가 급증의 원인인지 조사해야 합니다. 리소스 간에 워크로드를 재배포하면 문제가 해결될 수 있습니다.
  • Fleet별 CPU/메모리/디스크 사용률을 통해 사용한 리소스와 요청된 리소스 간의 비율을 관찰할 수 있습니다. 이 둘의 차이가 크면 애플리케이션팀이 너무 많은 리소스를 요청하고 예약한다는 의미일 수 있습니다.

리소스 사용률 측정항목 이해

다음 측정항목은 GKE Enterprise, Fleet, 팀 범위 개요 대시보드에 제공되며 Fleet 클러스터의 Cloud Monitoring의 정보를 사용하여 계산됩니다.

GKE Enterprise 및 Fleet 개요 대시보드에서 Fleet 수준 측정항목을 볼 수 있습니다. 팀 수준 측정항목은 GKE Enterprise 및 팀 개요 대시보드에서 제공됩니다.

CPU 측정항목

  • 총 CPU 사용률:
    • Fleet 수준 측정항목의 경우 특정 기간 동안 모든 시점의 평균입니다. 여기에서 시점은 Fleet에 등록된 모든 클러스터에서 할당 가능한 리소스와 사용된 리소스 사이의 비율입니다.
      • 할당 가능: Fleet에 등록된 모든 클러스터 간의 모든 노드에 할당된 CPU 양입니다. node/cpu/allocatable_cores 측정항목에서 계산됩니다.
      • 사용됨: Fleet에 등록된 모든 클러스터에서 모든 컨테이너에 사용된 CPU 양입니다. container/cpu/core_usage_time 측정항목에서 계산됩니다.
    • Monitoring 대시보드에서 특정 기간 동안 모든 시점의 평균입니다. 여기서 시점은 팀 범위와 연결된 모든 네임스페이스에서 요청된 리소스와 사용된 리소스 사이의 비율입니다.
      • 요청됨: 팀 범위와 연결된 모든 네임스페이스에서 모든 컨테이너가 요청한 CPU의 양입니다. container/cpu/request_cores 측정항목에서 계산됩니다.
      • 사용됨: 팀 범위와 연결된 모든 네임스페이스에서 모든 컨테이너에 사용된 CPU의 양입니다. container/cpu/core_usage_time 측정항목에서 계산됩니다.
  • Fleet/팀별 CPU 사용률:
    • Fleet 수준에서 사용된 리소스, 요청된 리소스, 할당된 리소스 사이의 관계입니다.
      • 사용됨: Fleet에 등록된 모든 클러스터에서 모든 컨테이너에 사용된 CPU 양입니다. container/cpu/core_usage_time 측정항목에서 계산됩니다.
      • 요청됨: Fleet에 등록된 모든 클러스터에서 모든 컨테이너가 요청한 CPU의 양입니다. container/cpu/request_cores 측정항목에서 계산됩니다.
      • 할당 가능: Fleet에 등록된 모든 클러스터 간의 모든 노드에 할당된 CPU 양입니다. node/cpu/allocatable_cores 측정항목에서 계산됩니다.
    • 팀 수준에서 리소스, 한도, 사용된 리소스와 요청된 리소스 사이의 관계입니다.
      • 사용됨: 팀 범위와 연결된 모든 네임스페이스에서 모든 컨테이너에 사용된 CPU의 양입니다. container/cpu/core_usage_time 측정항목에서 계산됩니다.
      • 요청됨: 팀 범위와 연결된 모든 네임스페이스에서 모든 컨테이너가 요청한 CPU의 양입니다. container/cpu/request_cores 측정항목에서 계산됩니다.
      • 한도: 팀 범위와 연결된 모든 네임스페이스에서 모든 컨테이너에 제공되는 최대 CPU의 양입니다. container/cpu/limit_cores 측정항목에서 계산됩니다.
  • 클러스터별 상위 CPU 사용률: 특정 기간 동안 모든 시점의 평균으로 정렬된 클러스터 목록입니다. 여기서 시점은 특정 클러스터의 할당 가능한 리소스와 사용된 리소스 사이의 비율입니다.
    • 할당 가능: 클러스터의 모든 노드에 할당된 CPU 양입니다. node/cpu/allocatable_cores 측정항목에서 계산됩니다.
    • 사용됨: 클러스터의 모든 컨테이너에서 사용하는 CPU 용량입니다. container/cpu/core_usage_time 측정항목에서 계산됩니다.
  • 네임스페이스별 상위 CPU 사용률: 특정 기간 동안 모든 시점의 평균으로 정렬된 네임스페이스 목록입니다. 여기서 시점은 특정 네임스페이스의 사용된 리소스와 요청된 리소스 사이의 비율입니다.
    • 사용됨: 네임스페이스의 모든 컨테이너에서 사용하는 CPU 용량입니다. container/cpu/core_usage_time 측정항목에서 계산됩니다.
    • 요청됨: 네임스페이스의 모든 컨테이너가 요청한 CPU 양입니다. container/cpu/request_cores 측정항목에서 계산됩니다.

메모리 측정항목

  • 총 메모리 사용률:
    • Fleet 수준 측정항목에서 이 값은 특정 기간 동안 모든 시점의 평균을 나타냅니다. 여기에서 시점은 Fleet에 속하는 모든 클러스터에서 할당 가능한 리소스와 사용된 리소스 사이의 비율입니다.
      • 할당 가능: Fleet에 등록된 모든 클러스터 간의 모든 노드에 할당된 메모리 양입니다. node/memory/allocatable_byte 측정항목에서 계산됩니다.
      • 사용됨: Fleet에 등록된 모든 클러스터의 모든 컨테이너에서 사용하는 제거 불가능한 메모리 양입니다. container/memory/used_bytes 측정항목에서 계산됩니다.
    • 팀 수준 측정항목의 경우 이 값은 특정 기간 동안 모든 시점의 평균을 나타냅니다. 여기서 시점은 팀 범위에 속하는 모든 네임스페이스에서 요청된 리소스와 사용된 리소스 사이의 비율입니다.
      • 요청됨: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너가 요청한 메모리 양입니다. container/memory/request_bytes 측정항목에서 계산됩니다.
      • 사용됨: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너에 사용된 제거 불가능한 메모리 양입니다. container/memory/used_bytes 측정항목에서 계산됩니다.
  • Fleet/팀별 메모리 사용률:
    • Fleet 수준에서 사용된 리소스, 요청된 리소스, 할당된 리소스 사이의 관계입니다.
      • 사용됨: Fleet에 등록된 모든 클러스터의 모든 컨테이너에서 사용하는 제거 불가능한 메모리 양입니다. container/memory/used_bytes 측정항목에서 계산됩니다.
      • 요청됨: Fleet에 등록된 모든 클러스터에서 모든 컨테이너가 요청한 메모리의 양입니다. container/memory/request_bytes 측정항목에서 계산됩니다.
      • 할당 가능: Fleet에 등록된 모든 클러스터 간의 모든 노드에 할당된 메모리 양입니다. node/memory/allocatable_byte 측정항목에서 계산됩니다.
    • 팀 수준에서 리소스, 한도, 사용된 리소스와 요청된 리소스 사이의 관계입니다.
      • 사용됨: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너에 사용된 제거 불가능한 메모리 양입니다. container/memory/used_bytes 측정항목에서 계산됩니다.
      • 요청됨: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너가 요청한 메모리 양입니다. container/memory/request_bytes 측정항목에서 계산됩니다.
      • 한도: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너에 제공되는 최대 메모리의 양입니다. container/memory/limit_bytes 측정항목에서 계산됩니다.
  • 클러스터별 상위 메모리 사용률: 특정 기간 동안 모든 시점 평균을 기준으로 정렬된 클러스터 목록입니다. 여기서 시점은 특정 클러스터에 할당할 수 있는 리소스와 사용된 리소스 간의 비율입니다.
    • 할당 가능: 클러스터의 모든 노드에 할당된 메모리 양입니다. node/memory/allocatable_byte 측정항목에서 계산됩니다.
    • 사용됨: 클러스터의 모든 컨테이너에서 사용하는 제거 불가능한 메모리 양입니다. container/memory/used_bytes 측정항목에서 계산됩니다.
  • 네임스페이스별 상위 메모리 사용률: 특정 기간 동안 모든 시점의 평균으로 정렬된 네임스페이스 목록입니다. 여기서 시점은 특정 네임스페이스의 사용된 리소스와 요청된 리소스 사이의 비율입니다.
    • 사용됨: 네임스페이스의 모든 컨테이너에서 사용하는 제거 불가능한 메모리 양입니다. container/memory/used_bytes 측정항목에서 계산됩니다.
    • 요청됨: 네임스페이스의 모든 컨테이너가 요청한 메모리 양입니다. container/memory/request_bytes 측정항목에서 계산됩니다.

디스크 측정항목

  • 총 디스크 사용률:
    • Fleet 수준 측정항목에서 이 값은 특정 기간 동안 모든 시점의 평균을 나타냅니다. 여기에서 시점은 Fleet에 속하는 모든 클러스터에서 할당 가능한 리소스와 사용된 리소스 사이의 비율입니다.
      • 할당 가능: Fleet에 등록된 모든 클러스터의 모든 노드에 할당된 로컬 임시 스토리지 용량입니다. node/ephemeral_storage/allocatable_bytes 측정항목에서 계산됩니다.
      • 사용됨: Fleet에 등록된 모든 클러스터의 모든 컨테이너가 사용하는 로컬 임시 스토리지 용량입니다. container/ephemeral_storage/used_bytes 측정항목에서 계산됩니다.
    • 팀 수준 측정항목의 경우 이 값은 특정 기간 동안 모든 시점의 평균을 나타냅니다. 여기서 시점은 팀 범위에 속하는 모든 네임스페이스에서 요청된 리소스와 사용된 리소스 사이의 비율입니다.
      • 요청됨: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너가 요청한 로컬 임시 스토리지 용량입니다. container/ephemeral_storage/request_bytes 측정항목에서 계산됩니다.
      • 사용됨: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너에 사용된 로컬 임시 스토리지의 양입니다. container/ephemeral_storage/used_bytes 측정항목에서 계산됩니다.
  • Fleet/팀별 디스크 사용률:
    • Fleet 수준에서 사용된 리소스, 요청된 리소스, 할당된 리소스 사이의 관계입니다.
      • 사용됨: Fleet에 등록된 모든 클러스터의 모든 컨테이너가 사용하는 로컬 임시 스토리지 용량입니다. container/ephemeral_storage/used_bytes 측정항목에서 계산됩니다.
      • 요청됨: Fleet에 등록된 모든 클러스터의 모든 컨테이너가 요청한 로컬 임시 스토리지 용량입니다. container/ephemeral_storage/request_bytes 측정항목에서 계산됩니다.
      • 할당 가능: Fleet에 등록된 모든 클러스터의 모든 노드에 할당된 로컬 임시 스토리지 용량입니다. node/ephemeral_storage/allocatable_bytes 측정항목에서 계산됩니다.
    • 팀 수준에서 리소스, 한도, 사용된 리소스와 요청된 리소스 사이의 관계입니다.
      • 사용됨: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너에 사용된 로컬 임시 스토리지의 양입니다. container/ephemeral_storage/used_bytes 측정항목에서 계산됩니다.
      • 요청됨: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너가 요청한 로컬 임시 스토리지 용량입니다. container/ephemeral_storage/request_bytes 측정항목에서 계산됩니다.
      • 한도: 범위와 연결된 모든 네임스페이스에서 모든 컨테이너에 제공되는 최대 로컬 임시 스토리지의 양입니다. container/ephemeral_storage/limit_bytes 측정항목에서 계산됩니다.
  • 클러스터별 상위 디스크 사용률: 특정 기간 동안 모든 시점 평균을 기준으로 정렬된 클러스터 목록입니다. 여기서 시점은 특정 클러스터에 할당할 수 있는 리소스와 사용된 리소스 간의 비율입니다.
  • 네임스페이스별 상위 디스크 사용률: 특정 기간 동안 모든 시점의 평균으로 정렬된 네임스페이스 목록입니다. 여기서 시점은 특정 네임스페이스의 사용된 리소스와 요청된 리소스 사이의 비율입니다.

네임스페이스별 오류 분포(팀 수준만 해당)

특정 기간 동안 가장 높은 오류 로그 수로 정렬된 네임스페이스 목록입니다. 로그는 Cloud Logging에서 수집됩니다.

네임스페이스별 다시 시작 횟수 분포(팀 수준만 해당)

지정된 기간 동안 가장 높은 컨테이너 다시 시작 횟수로 정렬된 네임스페이스 목록입니다. container/restart_count 측정항목에서 계산됩니다.

문제 해결

새 클러스터의 측정항목 로드 실패

새 클러스터를 만든 경우 선택한 기간에 따라 Monitoring 대시보드 전체에 No Data가 표시되거나 측정항목이 표시될 수도 있습니다. 예를 들어 이전 1시간 내에 클러스터를 만들고 기간을 1시간 또는 6시간으로 선택하면 대시보드에 워크로드의 일부 측정항목이 반환될 수 있습니다. 그러나 시간을 1일 이상으로 선택하면 대시보드 전체에 No data가 표시될 수 있습니다.

이는 Cloud Monitoring이 서로 다른 기간 동안 다른 기간(간격)으로 데이터를 수집하기 때문입니다. 시간이 1시간6시간일 때는 데이터가 1분 간격으로 수집됩니다. 따라서 클러스터가 몇 분 간 존재했으면 해당 기간 동안 측정항목이 표시됩니다.

시간이 1일1주일 때는 Cloud Monitoring이 1시간 간격으로 데이터를 수집합니다. 클러스터가 1시간 미만으로 존재했으면 이 기간에 대해 데이터 없음이 표시될 수 있습니다.

이 오류가 발생하면 새 클러스터를 만들고 나서 시간이 더 경과한 후에 대시보드를 확인합니다.