Python 에이전트는 Python 프로세스 및 인터프리터의 성능을 분석할 수 있도록 런타임 메트릭을 기록합니다. 여기에는 CPU 사용량, 메모리 사용량 및 가비지 수집과 관련된 메트릭이 포함됩니다.
CPU 사용량
CPU 런타임 메트릭을 사용하면 사용자 및 시스템 CPU 사용률을 검사하여 CPU 사용률을 모니터링하고 CPU의 여러 구성 요소에서 소요된 시간도 확인할 수 있습니다. 다음 CPU 사용량 메트릭을 사용할 수 있습니다.
- CPU 시간 : CPU의 다양한 상태에서 소요된 시간을 추적합니다. 여기에는 사용자(응용 프로그램 코드를 실행하는 시간)와 시스템(운영 체제에서 보낸 시간)이 포함됩니다. 이 메트릭은 총 경과 시간(초)으로 표시됩니다.
- CPU 사용률 : CPU의 여러 구성 요소에서 시간이 지남에 따라 사용되는 처리 리소스의 양을 분석합니다. 여기에는 사용자 구성 요소(응용 프로그램 코드 실행용)와 시스템 구성 요소(커널 코드 실행용)가 포함됩니다. 이 측정 단위는 지정된 CPU 구성 요소에서 보낸 시간을 총 경과된 CPU 시간으로 나눈 백분율로 보고됩니다.
메모리 사용량
프로세스 및 호스트별로 시스템의 전체 메모리 소비 및 사용률을 모니터링할 수 있습니다. 다음 메모리 사용량 메트릭을 사용할 수 있습니다.
- 총 실제 메모리 : 시간이 지남에 따라 시스템에서 사용 중인 총 실제 메모리의 양(MB)을 모니터링합니다. 이 메트릭은 개별 프로세스 ID에도 사용할 수 있습니다.
- 메모리 사용률 : 시간 경과에 따른 시스템 및 개별 프로세스의 메모리 사용률을 추적합니다. 이 측정 단위는 시스템(또는 특정 프로세스)에서 사용 중인 총 실제 메모리 값을 사용 가능한 총 메모리 양으로 나눈 값으로 표시됩니다.
쓰레기 수거
중요
가비지 컬렉션 프로파일링은 Python 에이전트 버전 6.2.0.156 이상 에서 사용할 수 있으며 에이전트에서는 기본적으로 비활성화되어 있습니다. 활성화하려면 여기에서 설명서를 확인하세요.
가비지 수집기는 사용되지 않는 데이터 개체를 찾고 다른 프로세스에서 사용할 수 있도록 해당 메모리 공간을 회수합니다. Python 에이전트는 다음과 같은 가비지 수집 메트릭을 제공합니다.
- 유형별 개체 수 : 관련 컬렉션 수를 확인하여 가비지 수집기가 수집하는 가장 일반적인 개체 유형에 대한 통찰력을 얻습니다. top_object_count_limit 설정 을 구성하여 이 측정항목 유형에서 보고하려는 최대 개체 유형 수를 사용자 정의할 수 있습니다.
- 세대별 개체 수 : 가비지 수집기의 각 세대에서 수집이 발생함에 따라 살아남은 개체는 상위 세대로 승격됩니다. 이 메트릭을 사용하면 시간이 지남에 따라 각 가비지 수집기 세대에 저장되는 개체 수를 볼 수 있습니다.
- 세대별 총 시간 : 수집의 각 세대에서 가비지 수집기가 소비하는 시간을 분석합니다.
- Garbage Collector Collections : 컬렉션의 수는 각 세대에 대해 설정된 개체 임계값의 영향을 받습니다. 임계값에 도달하면 수집 프로세스가 트리거됩니다. 컬렉션은 gc.collect() 를 호출하여 애플리케이션 코드 내에서 수동으로 트리거될 수도 있습니다. 이 메트릭은 시간이 지남에 따라 각 세대에서 발생한 가비지 수집기 스윕 수를 보고합니다.
- 가비지 컬렉터 수집 불가 : 어떤 경우에는 가비지 컬렉터가 특정 개체에 도달하여 해제할 수 없으며 수집할 수 없는 것으로 간주할 수 있습니다. 이 메트릭을 사용하면 각 세대에서 가비지 수집기가 수집할 수 없었던 개체 수를 볼 수 있습니다.
- 수집된 가비지 수집기 : 이 측정 단위는 각 세대에서 가비지 수집기가 수집한 총 개체 수를 보고합니다.