2016-10-21 11 views
1

Google Compute Engineを初めて使用しました。 Linuxのperfツールを使用して、アプリケーションのさまざまなperfイベント測定を行い、最終的にプロファイリングのサンプルを採りたいと思います。私は私のUbuntu 16.04 LTS VMにlinux perfツールをインストールしました。しかし、サイクルのような基本的な出来事でさえ、「サポートされていない」と表示されます。私はKVMがデフォルト以外のフラグ設定でこれをサポートしていると考えていますが、基盤となるKVMハイパーバイザは仮想PMUサポートを有効にしていないと推測しています。これを実現する方法はありますか?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仮想化はそのようなアクセスを与えないようです。

perfを使用して基本的なプロファイリングを得るには、いくつかのソフトウェアイベント(たとえば、)を使用することができます.GCEのサポートを依頼してください。サポートされているイベントの場合はperf stat、ソフトウェアイベントの場合はperf listを確認してください。

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

KVMとPMUに関するいくつかのドキュメント: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

関連する問題