Menggunakan metrik untuk mendiagnosis latensi

Halaman ini menjelaskan metrik latensi yang disediakan Spanner. Jika aplikasi Anda mengalami latensi tinggi, gunakan metrik ini untuk membantu mendiagnosis dan menyelesaikan masalah.

Anda dapat melihat metrik ini di konsol Google Cloud dan di konsol Cloud Monitoring.

Ringkasan metrik latensi

Metrik latensi untuk Spanner mengukur waktu yang diperlukan layanan Spanner untuk memproses permintaan. Metrik ini merekam jumlah waktu yang sebenarnya berlalu, bukan jumlah waktu CPU yang digunakan Spanner.

Metrik latensi ini tidak mencakup latensi yang terjadi di luar Spanner, seperti latensi jaringan atau latensi dalam lapisan aplikasi Anda. Untuk mengukur jenis latensi lainnya, Anda dapat menggunakan Cloud Monitoring untuk menginstrumentasikan aplikasi dengan metrik kustom.

Anda dapat melihat diagram metrik latensi di konsol Google Cloud dan di konsol Cloud Monitoring. Anda dapat melihat metrik latensi gabungan yang mencakup operasi baca dan tulis, atau Anda dapat melihat metrik terpisah untuk operasi baca dan tulis.

Berdasarkan latensi setiap permintaan, Spanner mengelompokkan permintaan ke dalam persentil. Anda dapat melihat metrik latensi untuk latensi persentil ke-50 dan persentil ke-99:

  • Latensi persentil ke-50: Latensi maksimum, dalam detik, untuk 50% tercepat dari semua permintaan. Misalnya, jika latensi persentil ke-50 adalah 0,5 detik, maka Spanner memproses 50% permintaan dalam waktu kurang dari 0,5 detik.

    Metrik ini terkadang disebut latensi median.

  • Latensi persentil ke-99: Latensi maksimum, dalam detik, untuk 99% permintaan tercepat. Misalnya, jika latensi persentil ke-99 adalah 2 detik, maka Spanner memproses 99% permintaan dalam waktu kurang dari 2 detik.

Latensi dan operasi per detik

Saat instance memproses sejumlah kecil permintaan selama jangka waktu tertentu, latensi persentil ke-50 dan ke-99 selama jangka waktu tersebut bukanlah indikator yang signifikan dari performa keseluruhan instance. Dalam kondisi ini, sejumlah kecil outlier dapat mengubah metrik latensi secara drastis.

Misalnya, sebuah instance memproses 100 permintaan selama satu jam. Dalam hal ini, latensi persentil ke-99 untuk instance selama satu jam tersebut adalah jumlah waktu yang diperlukan untuk memproses permintaan paling lambat. Pengukuran latensi berdasarkan satu permintaan tidak bermakna.

Cara mendiagnosis masalah latensi

Bagian berikut menjelaskan cara mendiagnosis beberapa masalah umum yang dapat menyebabkan aplikasi Anda mengalami latensi menyeluruh yang tinggi.

Untuk melihat sekilas metrik latensi instance, gunakan konsol Google Cloud. Untuk memeriksa metrik lebih cermat dan menemukan korelasi antara latensi dan metrik lainnya, gunakan konsol Cloud Monitoring.

Total latensi tinggi, latensi Spanner rendah

Jika aplikasi Anda mengalami latensi yang lebih tinggi dari yang diharapkan, tetapi metrik latensi untuk Spanner secara signifikan lebih rendah dari total latensi menyeluruh, mungkin ada masalah dalam kode aplikasi Anda. Jika aplikasi Anda memiliki masalah performa yang menyebabkan beberapa jalur kode lambat, total latensi menyeluruh untuk setiap permintaan dapat meningkat.

Untuk memeriksa masalah ini, lakukan benchmark aplikasi Anda guna mengidentifikasi jalur kode yang lebih lambat dari yang diharapkan.

Anda juga dapat mengomentari kode yang berkomunikasi dengan Spanner, lalu mengukur total latensi lagi. Jika total latensi tidak banyak berubah, Spanner kemungkinan bukan penyebab latensi yang tinggi.

Total latensi tinggi, latensi Spanner tinggi

Jika aplikasi Anda mengalami latensi yang lebih tinggi dari yang diharapkan, dan metrik latensi Spanner juga tinggi, ada beberapa kemungkinan penyebabnya:

  • Instance Anda memerlukan lebih banyak kapasitas komputasi. Jika instance Anda tidak memiliki resource CPU yang memadai, dan penggunaan CPU-nya melebihi maksimum yang direkomendasikan, Spanner mungkin tidak dapat memproses permintaan Anda dengan cepat dan efisien.

  • Beberapa kueri Anda menyebabkan penggunaan CPU yang tinggi. Jika kueri Anda tidak memanfaatkan fitur Spanner yang meningkatkan efisiensi, seperti parameter kueri dan indeks sekunder, atau jika menyertakan banyak join atau operasi intensif CPU lainnya, kueri dapat menggunakan sebagian besar resource CPU untuk instance Anda.

Untuk memeriksa masalah ini, gunakan konsol Cloud Monitoring untuk mencari korelasi antara penggunaan CPU yang tinggi dan latensi yang tinggi. Selain itu, periksa statistik kueri untuk instance Anda untuk mengidentifikasi kueri yang menggunakan CPU secara intensif selama jangka waktu yang sama.

Jika Anda mendapati bahwa penggunaan CPU dan latensi tinggi secara bersamaan, tindakan untuk mengatasi masalah tersebut:

Langkah selanjutnya