Mengukur performa aplikasi

Dokumen ini menunjukkan cara menyiapkan dan menggunakan Cloud Profiler. Anda menggunakan Cloud Shell untuk mendownload program Go sampel, menjalankannya dengan mengaktifkan pembuatan profil, lalu menggunakan antarmuka Profiler untuk menjelajahi data yang direkam.

Jika berencana membuat profil aplikasi yang berjalan di luar Google Cloud, Anda perlu melakukan beberapa langkah konfigurasi yang tidak dibahas dalam dokumen ini. Untuk mengetahui informasi tentang langkah-langkah ini, lihat Membuat profil aplikasi yang berjalan di luar Google Cloud.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  4. Aktifkan API yang diperlukan.

    Mengaktifkan API

  5. Untuk membuka Cloud Shell, di toolbar konsol Google Cloud, klik Aktifkan Cloud Shell:

    Mengaktifkan Cloud Shell.

    Setelah beberapa saat, sesi Cloud Shell akan terbuka di dalam konsol Google Cloud:

    Sesi Cloud Shell.

Mendapatkan program untuk membuat profil

Program contoh, main.go, ada di repositori golang-samples di GitHub. Untuk mendapatkannya, di Cloud Shell, jalankan perintah berikut untuk mengambil paket contoh Go:

git clone https://github.com/GoogleCloudPlatform/golang-samples.git

Pengambilan paket memerlukan waktu beberapa saat untuk diselesaikan.

Membuat profil kode

Di Cloud Shell, buka direktori kode contoh untuk Profiler dalam paket yang diambil:

cd golang-samples/profiler/profiler_quickstart

Program main.go membuat beban kerja yang intensif CPU untuk memberikan data ke profiler. Di Cloud Shell, jalankan perintah berikut untuk memulai program, dan biarkan program berjalan:

 go run main.go

Program ini dirancang untuk memuat CPU saat berjalan. Alat ini dikonfigurasi untuk menggunakan Profiler, yang mengumpulkan data pembuatan profil dari program saat berjalan dan menyimpannya secara berkala.

Beberapa detik setelah memulai program, Anda akan melihat pesan profiler has started. Dalam waktu sekitar satu menit, dua pesan lagi akan ditampilkan:

 successfully created profile CPU
 start uploading profile

Pesan ini menunjukkan bahwa profil telah dibuat dan diupload ke project Cloud Storage Anda. Program terus memunculkan dua pesan terakhir, sekitar satu kali per menit, selama program berjalan.

Jika Anda menerima pesan error izin ditolak setelah memulai layanan, lihat Error pada konfigurasi project Google Cloud Anda.

Antarmuka profiler

Beberapa saat setelah Anda memulai aplikasi, Profiler akan menampilkan data profil awal. Antarmuka ini menawarkan berbagai kontrol dan grafik api untuk menjelajahi data pembuatan profil:

Antarmuka profiler dengan kode contoh.

Selain kontrol waktu, ada opsi yang memungkinkan Anda memilih kumpulan data profil yang akan digunakan. Saat membuat profil beberapa aplikasi, Anda menggunakan Layanan untuk memilih asal data yang dibuat profilnya. Jenis profil memungkinkan Anda memilih jenis data profil yang akan ditampilkan. Nama zona dan Versi memungkinkan Anda membatasi tampilan ke data dari zona Compute Engine atau versi aplikasi. Bobot memungkinkan Anda memilih profil yang diambil selama puncak penggunaan resource.

Untuk menyaring cara flame graph menampilkan profil yang telah Anda pilih untuk dianalisis, Anda dapat menambahkan filter. Pada screenshot sebelumnya, panel filter menampilkan satu filter. Opsi filter ini adalah Metric dan nilai filternya adalah CPU time.

Menjelajahi data

Flame graph menampilkan stack panggilan program. Grafik api mewakili setiap fungsi dengan frame. Lebar frame menunjukkan proporsi penggunaan resource oleh fungsi tersebut. Frame atas mewakili seluruh program. Frame ini selalu menampilkan 100% konsumsi resource. Frame ini juga mencantumkan jumlah profil yang dirata-ratakan dalam grafik ini.

Program contoh tidak memiliki kumpulan stack panggilan yang rumit; di screenshot sebelumnya, Anda melihat 5 frame:

  • Bingkai abu-abu mewakili seluruh file yang dapat dieksekusi, yang mencakup 100% resource yang digunakan.
  • Frame main hijau adalah runtime.main Go.
  • Bingkai main oranye adalah rutinitas main dari program contoh.
  • Bingkai busyloop oranye adalah rutinitas yang dipanggil dari main sampel.
  • Bingkai main.load oranye adalah rutinitas yang dipanggil dari main sampel.

Pemilih filter memungkinkan Anda melakukan hal-hal seperti memfilter fungsi yang cocok dengan beberapa nama. Misalnya, jika ada library standar fungsi utilitas, Anda dapat menghapusnya dari grafik. Anda juga dapat menghapus stack panggilan yang berasal dari metode tertentu atau menyederhanakan grafik dengan cara lain. Aplikasi main.go sederhana, sehingga tidak banyak yang harus difilter.

Bahkan untuk aplikasi sederhana, filter memungkinkan Anda menyembunyikan frame yang tidak menarik sehingga Anda dapat melihat frame yang menarik dengan lebih jelas. Misalnya, dalam screenshot pembuatan profil untuk kode contoh, frame abu-abu sedikit lebih besar dari frame main pertama di bawahnya. Mengapa? Apakah ada hal lain yang terjadi yang tidak langsung terlihat karena stack panggilan main menggunakan persentase resource yang sangat besar? Untuk melihat apa yang terjadi di luar rutinitas main aplikasi, tambahkan filter yang menyembunyikan stack panggilan rutinitas main. Hanya 0,227% konsumsi resource yang terjadi di luar main:

Menyembunyikan stack dalam program contoh.

Untuk informasi selengkapnya tentang pemfilteran dan cara lain untuk menjelajahi data pembuatan profil, lihat Memilih profil yang akan dianalisis.

Langkah selanjutnya

Untuk informasi umum tentang pembuatan profil, lihat dokumen berikut:

Untuk informasi tentang cara menjalankan agen Cloud Profiler, lihat: