2016-10-21 12 views
1

Google Compute Engine을 처음 사용했습니다. 필자는 Linux perf 도구를 사용하여 응용 프로그램의 다양한 성능 이벤트 측정을 수행하고 결국 프로파일 링 샘플링을 수행하고자합니다. Ubuntu 16.04 LTS VM에 Linux perf 도구를 설치했습니다. 그러나 사이클과 같은 기본 이벤트도 "지원되지 않음"으로 표시됩니다. 기본 KVM 하이퍼 바이저에는 가상 PMU 지원이 설정되어 있지 않은 것으로 추측됩니다. KVM이 기본값이 아닌 플래그 설정을 지원합니다. 이 방법을 사용할 수 있습니까?Google Compute Engine에서 Linux perf 이벤트 프로파일 링이 작동하지 않습니다.

# perf stat -e cycles -a sleep 10 

Performance counter stats for 'system wide': 

<not supported>  cycles     

    10.000598339 seconds time elapsed 

답변

3

기본적으로 Linux perf 도구는 하드웨어 성능 모니터링 카운터를 사용하려고합니다. OS가 가상화되면 모든 카운터에 직접 액세스 할 수 없습니다. 몇 가지 가상화 솔루션을 구성하면 일부 기본 카운터에 액세스 할 수 있습니다.

GCE 가상화가 그러한 액세스를 제공하지 않는 것 같습니다. GCE의 지원을 요청하십시오. VM 외부에서 비활성화 된 경우이 변경 불가능합니다.

기본 프로파일 링을 얻으려면 일부 소프트웨어 이벤트와 함께 perf를 사용할 수 있습니다 (예 :). 지원되는 이벤트는 perf stat 출력을, 소프트웨어 이벤트는 perf list을 확인하십시오.

perf stat -e task-clock ... 
perf record -e task-clock ... 
+0

KVM 및 전원 관리에 대한 몇 가지 문서 : http://www.linux-kvm.org/page/Guest_PMU https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/ Virtualization_Tuning_and_Optimization_Guide/sect-Virtualization_Tuning_Optimization_Guide-Monitoring_Tools-vPMU.html "은 기본적으로 비활성화되어 있습니다." - PMU를 얻으려면 "cat/proc/cpuinfo | grep arch_perfmon','virsh dumpxml guest_name | grep", "cpu mode" – osgx