Cloud Profiler 개요

프로덕션 시스템의 성능을 이해하는 것은 매우 까다롭습니다. 테스트 환경에서 성능을 측정하려 할 경우 일반적으로 프로덕션 시스템이 받는 압박이 제대로 반영되지 않습니다. 애플리케이션 마이크로벤치마킹이 적합한 경우도 많지만 일반적으로 프로덕션 시스템의 워크로드 및 동작이 제대로 반영되지 않습니다.

프로덕션 시스템을 지속적으로 프로파일링하면 서비스가 작업 환경에서 작동할 때 CPU 주기 및 메모리와 같은 리소스가 소비되는 위치를 효과적으로 파악할 수 있습니다. 그러나 프로파일링을 수행하면 프로덕션 시스템의 부하가 가중됩니다. 리소스 소비 패턴을 파악할 때 프로파일링을 사용하려면 프로파일링의 추가 부하가 작아야 합니다.

Cloud Profiler는 오버헤드가 낮은 통계 프로파일러로, 프로덕션 애플리케이션에서 CPU 사용량과 메모리 할당 정보를 지속적으로 수집합니다. 정보를 생성한 소스 코드를 밝히고, 가장 많은 리소스를 소비하고 있는 애플리케이션 부분을 파악할 수 있게 해주며, 애플리케이션 성능 특성을 알려줍니다.

사용 가능한 프로파일링 유형

Cloud Profiler는 프로그램 작성 언어에 따라 다양한 유형의 프로파일링을 지원합니다. 다음은 언어별로 지원되는 프로필 유형을 요약한 표입니다.

프로필 유형 Go Java Node.js Python
CPU 시간 Y
Y
할당된 힙
경합
스레드
실제 경과 시간 Y

언어 요구사항 및 제한사항에 대한 자세한 내용은 언어 사용 방법 페이지를 참조하세요. 이러한 프로필 유형에 대한 자세한 내용은 프로파일링 개념을 참조하세요.

지원되는 구성

애플리케이션에서 프로필 데이터를 캡처하도록 설정할 때 언어별 프로파일링 에이전트를 포함합니다. 다음은 지원되는 환경을 요약한 테이블입니다.

환경 Go Java Node.js Python
Compute Engine YY
Google Kubernetes Engine YY
App Engine 가변형 환경 YY
App Engine 표준 환경 YYY
Dataproc Y
Dataflow Y
Google Cloud 외부 YY

다음은 지원되는 운영체제를 요약한 테이블입니다.

운영체제 Go Java Node.js Python
표준 C 라이브러리의 Linux
glibc 구현
Y Y
표준 C 라이브러리의 Linux
musl 구현
예(알파) 예(알파)

성능 영향

Cloud Profiler는 단일 Compute Engine 영역에 구성된 서비스의 단일 인스턴스에 대한 프로파일링 데이터를 일반적으로 1분 간격으로 10초 동안 수집하여 단일 프로필을 만듭니다. 예를 들어 GKE 서비스가 10분 동안 한 pod의 복제본 10개를 실행할 경우 프로필이 약 10개 생성되며, 각 pod는 대략 한 번씩 프로파일링됩니다. 프로파일링 기간은 임의로 선택되므로 변수가 있습니다. 자세한 내용은 프로필 컬렉션을 참조하세요.

데이터 수집 시 CPU 및 힙 할당 프로파일링의 오버헤드는 5% 미만입니다. 실행 시간 동안 한 서비스의 여러 복제본에 분산되는 오버헤드가 일반적으로 0.5% 미만이므로 프로덕션 시스템의 상시 가동 프로파일링에 사용해도 부담스럽지 않은 옵션입니다.

구성요소

Cloud Profiler는 데이터를 수집하는 프로파일링 에이전트와 에이전트에서 수집된 데이터를 보고 분석할 수 있는 Google Cloud의 콘솔 인터페이스로 구성됩니다.

프로파일링 에이전트

애플리케이션이 실행되는 가상 머신에 에이전트를 설치합니다. 에이전트는 일반적으로 실행 시 애플리케이션에 첨부하는 라이브러리로 제공됩니다. 에이전트는 앱이 실행될 때 프로파일링 데이터를 수집합니다.

Cloud Profiler 에이전트를 실행하는 방법에 대한 자세한 내용은 다음을 참조하세요.

Profiler 인터페이스

에이전트가 일부 프로파일링 데이터를 수집한 후에 Profiler 인터페이스를 사용하여 CPU 및 메모리 사용량의 통계가 애플리케이션의 각 영역과 어떻게 관련되어 있는지 확인할 수 있습니다.

Cloud Profiler 인터페이스

프로필 데이터는 30일 동안 유지되므로 지난 30일까지의 성능 데이터를 분석할 수 있습니다. 프로필을 다운로드하여 장기간 저장할 수도 있습니다.

할당량 및 한도

프로파일러 할당량을 보고 관리하는 방법에 대한 자세한 내용은 할당량 및 한도를 참조하세요.

데이터 보안

Cloud Profiler는 VPC 서비스 제어 지원 서비스입니다. 자세한 내용은 VPC 서비스 제어 문서를 참조하세요.