Halaman ini menjelaskan metrik latensi yang disediakan Spanner. Jika aplikasi Anda mengalami latensi tinggi, gunakan metrik ini untuk membantu Anda mendiagnosis dan menyelesaikan masalah.
Anda dapat melihat metrik ini di Google Cloud konsol dan di konsol Cloud Monitoring.
Ringkasan metrik latensi
Metrik latensi untuk Spanner mengukur berapa lama waktu yang dibutuhkan layanan Spanner untuk memproses permintaan. Metrik ini mencatat 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 melengkapi aplikasi Anda 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 pembacaan dan penulisan, atau Anda dapat melihat metrik terpisah untuk pembacaan dan penulisan.
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% permintaan tercepat. Misalnya, jika latensi persentil ke-50 adalah 0,5 detik, berarti 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
Jika instance memproses sejumlah kecil permintaan selama jangka waktu tertentu, latensi persentil ke-50 dan ke-99 selama waktu tersebut bukanlah indikator yang bermakna untuk performa keseluruhan instance. Dalam kondisi ini, sejumlah kecil pencilan dapat mengubah metrik latensi secara drastis.
Misalnya, anggaplah 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 tidaklah bermakna.
Cara mendiagnosis masalah latensi
Bagian berikut menjelaskan cara mendiagnosis beberapa masalah umum yang dapat menyebabkan aplikasi Anda mengalami latensi end-to-end yang tinggi.
Untuk melihat sekilas metrik latensi instance, gunakan Google Cloud konsol. 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 jauh lebih rendah daripada total latensi end-to-end, mungkin ada masalah dalam kode aplikasi Anda. Jika aplikasi Anda memiliki masalah performa yang menyebabkan beberapa jalur kode menjadi lambat, total latensi end-to-end untuk setiap permintaan mungkin meningkat.
Untuk memeriksa masalah ini, lakukan tolok ukur aplikasi Anda untuk 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 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 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 penggunaan CPU yang tinggi. Jika kueri Anda tidak memanfaatkan fitur Spanner yang meningkatkan efisiensi, seperti parameter kueri dan indeks sekunder, atau jika kueri tersebut menyertakan sejumlah besar join atau operasi intensif CPU lainnya, kueri dapat menggunakan sebagian besar sumber daya CPU untuk instance Anda.
Untuk memeriksa masalah ini, gunakan konsol Cloud Monitoring untuk mencari korelasi antara pemakaian CPU yang tinggi dan latensi yang tinggi. Selain itu, periksa statistik kueri untuk instance Anda guna mengidentifikasi kueri yang menggunakan banyak CPU selama periode waktu yang sama.
Jika Anda mendapati bahwa pemakaian CPU dan latensi tinggi secara bersamaan, lakukan tindakan untuk mengatasi masalah tersebut:
Jika Anda tidak menemukan banyak kueri yang menggunakan banyak CPU, tambahkan kapasitas komputasi ke instance.
Menambahkan kapasitas komputasi akan menyediakan lebih banyak resource CPU dan memungkinkan Spanner menangani workload yang lebih besar.
Jika Anda menemukan kueri yang menggunakan banyak CPU, tinjau rencana eksekusi kueri untuk mempelajari alasan kueri tersebut lambat, lalu perbarui kueri Anda agar mengikuti praktik terbaik SQL untuk Spanner.
Anda mungkin juga perlu meninjau desain skema untuk database dan memperbarui skema untuk memungkinkan kueri yang lebih efisien.
Langkah berikutnya
- Pantau instance Anda dengan konsolGoogle 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 dalam tabel statistik kueri, yang dapat Anda ambil menggunakan pernyataan SQL.