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 mengatasi masalah tersebut.

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 menangkap jumlah waktu sebenarnya yang 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 Google Cloud Console dan di konsol Cloud Monitoring. Anda dapat melihat metrik latensi gabungan yang mencakup baca dan tulis, atau Anda dapat melihat metrik terpisah untuk baca dan tulis.

Berdasarkan latensi setiap permintaan, Spanner mengelompokkan permintaan ke dalam persentil. Anda dapat melihat metrik latensi untuk persentil ke-50 dan latensi 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, Spanner akan 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, Spanner akan memproses 99% permintaan dalam waktu kurang dari 2 detik.

Latensi dan operasi per detik

Jika sebuah instance memproses sejumlah kecil permintaan selama jangka waktu tertentu, latensi persentil ke-50 dan ke-99 selama waktu tersebut bukanlah indikator yang berarti untuk keseluruhan performa instance. Dalam kondisi ini, jumlah pencilan yang sangat kecil dapat mengubah metrik latensi secara drastis.

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

Cara mendiagnosis masalah latensi

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

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

Latensi total tinggi, latensi Spanner yang rendah

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

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

Anda juga dapat menjadikan kode yang berkomunikasi dengan Spanner sebagai komentar, lalu mengukur kembali total latensi. Jika total latensi tidak terlalu berubah, Spanner tidak mungkin menjadi penyebab latensi tinggi.

Latensi total 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 kapasitas komputasi yang lebih besar. Jika instance Anda tidak memiliki resource CPU yang cukup, dan pemakaian CPU-nya melebihi maksimum yang direkomendasikan, Spanner mungkin tidak dapat memproses permintaan Anda dengan cepat dan efisien.

  • Beberapa kueri Anda menyebabkan pemakaian CPU yang tinggi. Jika kueri Anda tidak memanfaatkan fitur Spanner yang meningkatkan efisiensi, seperti parameter kueri dan indeks sekunder, atau jika kueri tersebut mencakup sejumlah besar join atau operasi lain yang menggunakan CPU secara intensif, kueri tersebut dapat menggunakan sebagian besar resource CPU untuk instance Anda.

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

Jika Anda mendapati bahwa pemakaian CPU dan latensi tinggi secara bersamaan, ambil tindakan untuk mengatasi masalah ini:

Langkah selanjutnya