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:
Jika Anda tidak menemukan banyak kueri yang menggunakan CPU secara intensif, tambahkan kapasitas komputasi ke instance.
Menambahkan kapasitas komputasi akan menyediakan lebih banyak resource CPU dan memungkinkan Spanner menangani beban kerja yang lebih besar.
Jika Anda menemukan kueri yang menggunakan CPU secara intensif, tinjau rencana eksekusi kueri untuk mengetahui alasan kueri berjalan lambat, lalu perbarui kueri Anda untuk mengikuti praktik terbaik SQL untuk Spanner.
Anda mungkin juga perlu meninjau desain skema untuk database dan memperbarui skema agar kueri yang lebih efisien.
Langkah selanjutnya
- Pantau instance Anda dengan Konsol Google Cloud atau konsol Cloud Monitoring.
- Pelajari cara menemukan korelasi antara latensi tinggi dan metrik lainnya.
- Pahami cara mengurangi latensi baca dengan mengikuti praktik terbaik SQL dan menggunakan batas stempel waktu.
- Cari tahu tentang metrik latensi di tabel statistik kueri, yang dapat Anda ambil menggunakan pernyataan SQL.
- Pahami cara konfigurasi instance memengaruhi latensi.