Mengidentifikasi transaksi yang mungkin menyebabkan latensi tinggi

Halaman ini menjelaskan cara menggunakan Insight penguncian dan Insight transaksi untuk mengidentifikasi transaksi yang menyebabkan latensi tinggi.

Ringkasan

Untuk memastikan konsistensi beberapa transaksi serentak, Spanner menggunakan kunci untuk mengontrol akses ke data. Persaingan kunci terjadi saat banyak transaksi memerlukan akses yang sering ke kunci yang sama, sehingga menyebabkan latensi tinggi. Tanpa antarmuka visual, mengidentifikasi transaksi bermasalah yang menyebabkan sejumlah besar masalah pertentangan kunci bisa jadi membosankan.

Operasi Spanner memperoleh kunci saat operasi menjadi bagian dari transaksi baca-tulis. Transaksi hanya baca tidak memperoleh kunci.

Spanner membantu Anda mengidentifikasi transaksi yang menyebabkan latensi tinggi dengan memandu Anda melalui langkah-langkah berikut:

  1. Periksa lonjakan latensi menggunakan Spanner Monitoring.
  2. Periksa masalah pertentangan kunci menggunakan Insight kunci.
  3. Identifikasi transaksi bermasalah menggunakan Insight transaksi.

Harga

Tidak ada biaya tambahan untuk Insight kunci atau Insight transaksi.

Konfigurasi region

Insight kunci dan Insight transaksi tersedia dalam konfigurasi regional dan multi-region.

Retensi data

Retensi data maksimum untuk data yang ditampilkan di dasbor Insight kunci dan Insight transaksi adalah 30 hari. Untuk grafik, data diambil dari tabel SPANNER_SYS.*, yang memiliki periode retensi maksimum 30 hari.

Untuk mengetahui informasi selengkapnya tentang tabel dan retensi data ini, lihat Statistik kunci dan Statistik transaksi.

Peran yang diperlukan

Anda memerlukan peran dan izin IAM yang berbeda, bergantung pada apakah Anda adalah pengguna IAM atau pengguna kontrol akses terperinci.

Pengguna Identity and Access Management (IAM)

Untuk mendapatkan izin yang diperlukan untuk melihat halaman insight Kunci dan Transaksi, minta administrator untuk memberi Anda peran IAM berikut pada instance:

Izin berikut dalam peran Cloud Spanner Database Reader (roles/spanner.databaseReader) diperlukan untuk melihat halaman insight Lock dan Transaksi:

  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.select
  • spanner.sessions.create

Pengguna kontrol akses yang sangat terperinci

Jika Anda adalah pengguna kontrol akses terperinci, pastikan Anda:

  • Memiliki peran Cloud Spanner Viewer(roles/spanner.viewer)
  • Hanya memiliki hak istimewa kontrol akses terperinci dan diberi spanner_sys_reader peran sistem atau salah satu peran anggotanya.
  • Pilih spanner_sys_reader atau peran anggota sebagai peran sistem saat ini di halaman ringkasan database.

Untuk mengetahui informasi selengkapnya, lihat Tentang kontrol akses terperinci dan Peran sistem kontrol akses terperinci.

Periksa lonjakan latensi menggunakan Spanner Monitoring

Anda dapat menggunakan Cloud Monitoring untuk menyetel pemberitahuan untuk metrik yang melampaui nilai minimum yang ditentukan untuk semua permintaan.

Jika Anda mendapatkan pemberitahuan yang menunjukkan lonjakan latensi untuk sebuah instance, Anda dapat mengonfirmasinya di dasbor Spanner Monitoring, yang menampilkan diagram untuk berbagai metrik penting. Diagram Latensi membantu Anda melihat latensi tinggi pada persentil ke-50 dan ke-99.

Untuk mengonfirmasi lonjakan latensi penulisan pada persentil ke-99, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Spanner Instances.

    Buka instance Spanner

  2. Klik nama instance.

    Konsol Google Cloud menampilkan ringkasan instance.

  3. Klik Pemantauan di menu navigasi.

    Konsol Google Cloud menampilkan diagram data untuk instance.

  4. Pada diagram Latensi, tetapkan Fungsi ke Write dan Persentil ke 99th.

  5. Periksa diagram yang dimuat ulang untuk melihat apakah ada lonjakan.

Grafik yang menunjukkan latensi penulisan pada persentil ke-99

Jika Anda mengamati bahwa penggunaan CPU tidak meningkat dan error meningkat dalam operasi per detik, kemungkinan lonjakan latensi disebabkan oleh persaingan kunci.

Memeriksa masalah pertentangan kunci menggunakan Insight kunci

Dasbor Insight kunci membantu Anda melihat waktu tunggu kunci dalam instance atau database yang dipilih. Hal ini dapat membantu Anda mengonfirmasi apakah latensi tinggi disebabkan oleh persaingan kunci.

Memeriksa waktu tunggu kunci yang tinggi

Untuk memeriksa waktu tunggu kunci yang tinggi, ikuti langkah-langkah berikut:

  1. Klik Insight kunci di menu navigasi.

    Konsol Google Cloud menampilkan diagram Total waktu tunggu kunci, yang menampilkan waktu tunggu kunci untuk setiap database dalam instance.

    Data yang ditampilkan adalah untuk 1 hour secara default, seperti yang ditunjukkan oleh pemilih waktu di pojok kanan atas dasbor Insight kunci. Untuk melihat data untuk rentang yang lebih luas, pilih opsi lain, seperti 1 day.

    Untuk mengetahui informasi selengkapnya, lihat Bekerja dengan diagram.

  2. Dari pemilih Database di bagian atas, pilih database yang menunjukkan waktu tunggu kunci tertinggi.

    Diagram Total waktu tunggu kunci diperbarui untuk menampilkan data hanya untuk database yang dipilih.

    Selain itu, diagram lain, Rentang per baris waktu tunggu kunci, menampilkan grafik untuk waktu tunggu kunci menurut rentang baris.

  3. Klik grafik dan tarik secara horizontal untuk meluaskan jam saat lonjakan latensi terlihat.

Dasbor Insight kunci

Menganalisis data waktu tunggu kunci

Tabel Insight Penguncian menampilkan kolom berikut dari tabel sistem SPANNER_SYS.LOCK_STATS:

  • Kunci awal rentang baris: Kunci baris tempat konflik penguncian terjadi. Jika konflik melibatkan rentang baris, nilai ini mewakili kunci awal rentang. Tanda plus (+) menandakan rentang.
  • Waktu tunggu kunci: Total waktu tunggu kunci yang ditampilkan secara visual pada batang horizontal. Secara default, tabel menggunakan kolom ini untuk pengurutan dan menampilkan kunci awal rentang baris dengan waktu tunggu penguncian tertinggi di bagian atas.
  • Waktu tunggu kunci (detik): Waktu tunggu kunci kumulatif dari konflik kunci yang dicatat untuk semua kolom dalam rentang kunci baris, dalam detik.
  • Waktu tunggu kunci (%): Waktu tunggu konflik kunci yang dicatat untuk semua kolom dalam rentang kunci baris sebagai persentase dari total waktu tunggu kunci untuk semua rentang kunci baris dalam database.

Untuk mengorelasikan data pada diagram Rentang waktu tunggu kunci per baris dengan data dalam tabel, pilih garis. Baris terkait akan ditandai. Sebaliknya, centang kotak untuk baris dalam tabel guna melihat garis terkait pada diagram.

Tabel Insight kunci

Untuk memfilter data dalam tabel, lakukan hal berikut:

  1. Klik di kotak teks di samping Filter.

  2. Pilih properti, pilih operator, dan tentukan nilai.

Tabel akan menampilkan data yang cocok dengan filter.

Melihat contoh permintaan penguncian

Panel Contoh permintaan penguncian menampilkan detail tentang contoh permintaan penguncian dari transaksi yang bersaing.

Untuk melihat informasi permintaan kunci sampel untuk kunci awal rentang baris, klik link terkait dalam tabel.

Tabel ini menampilkan kolom informasi berikut:

  • Nama kolom contoh: Kolom yang mengalami konflik penguncian pada rentang kunci baris.
  • Mode kunci: Mode kunci yang diminta.
  • Lihat transaksi: Link ke halaman Insight transaksi, yang menampilkan transaksi yang mungkin bersaing untuk mendapatkan kunci.

Halaman detail Insight kunci

Mengidentifikasi transaksi yang bersaing menggunakan Insight transaksi

Dasbor Insight transaksi membantu Anda melihat latensi dalam transaksi di instance atau database yang dipilih. Kolom ini dapat membantu Anda mengidentifikasi transaksi yang mungkin menyebabkan latensi tinggi karena persaingan kunci.

Melihat latensi transaksi

Untuk melihat latensi transaksi, ikuti langkah-langkah berikut:

  1. Klik Insight transaksi di navigasi kiri.

  2. Dari pemilih Database di bagian atas, pilih database yang menunjukkan waktu tunggu kunci tertinggi.

    Atau, di dasbor Insight kunci, klik Lihat transaksi untuk memfilter transaksi yang membaca atau menulis ke kolom sampel tertentu.

    Data yang ditampilkan adalah untuk 1 hour secara default, seperti yang ditunjukkan oleh pemilih waktu di sudut kanan atas dasbor Insight transaksi.

Dasbor menampilkan diagram berikut:

  • Diagram Latensi rata-rata (semua transaksi) menampilkan latensi untuk semua transaksi dalam instance.

  • Diagram Latensi rata-rata (per transaksi) menampilkan latensi untuk setiap transaksi database yang dipilih.

Dasbor Insight transaksi

Menganalisis data transaksi

Anda dapat melihat dan menganalisis data untuk setiap transaksi dalam tabel di bawah diagram. Tabel ini menampilkan data metrik dari tabel sistem SPANNER_SYS.TXN_STATS dalam kolom berikut:

  • Sidik Jari: Hash tag transaksi, jika ada. Jika tidak, hash dihitung berdasarkan operasi yang terlibat dalam transaksi. Nilainya adalah link yang mengarah ke halaman Detail Transaksi.
  • Tag transaksi: Tag transaksi opsional untuk transaksi. Data statistik untuk beberapa transaksi yang memiliki string tag yang sama dikelompokkan dalam satu baris dengan label TRANSACTION_TAG yang cocok dengan string tag.
  • Tabel yang terpengaruh: Tabel yang terpengaruh oleh transaksi.
  • Table.column Read: Kolom yang dibaca transaksi.
  • Table.column Ditulis: Kolom yang ditulis oleh transaksi.
  • Latensi rata-rata (detik): Rata-rata detik yang diperlukan untuk melakukan transaksi. Secara default, tabel diurutkan berdasarkan kolom ini dalam urutan menurun.

Untuk mengorelasikan data pada diagram Latensi rata-rata (per transaksi) dengan data dalam tabel, pilih garis pada diagram. Baris yang sesuai dalam tabel akan ditandai.

Untuk memfilter data dalam tabel, lakukan hal berikut:

  1. Klik di samping Filter.

  2. Pilih properti, pilih operator, dan tentukan nilai.

Tabel akan menampilkan data yang cocok dengan filter.

Tabel Insight transaksi

Melihat informasi mendetail tentang transaksi

Untuk melihat informasi mendetail tentang transaksi, seperti transaksi yang menunjukkan latensi tertinggi, klik link Sidik Jari di baris yang sesuai dalam tabel.

Halaman Detail transaksi akan muncul. Selain tabel detail di bagian atas, tabel ini menampilkan informasi berikut:

  • Batang yang menampilkan nilai numerik untuk setiap metrik ini:

    • Byte rata-rata: Jumlah rata-rata byte yang ditulis oleh transaksi.
    • Latensi rata-rata: Rata-rata detik yang diperlukan dari operasi pertama transaksi hingga di-commit atau dibatalkan.
    • Latensi commit rata-rata: Rata-rata detik yang diperlukan untuk melakukan operasi commit.
    • Jumlah total percobaan: Jumlah total percobaan transaksi.
    • Jumlah total pembatalan: Total jumlah upaya transaksi yang dibatalkan, termasuk yang dibatalkan sebelum memanggil metode commit transaksi.
  • Diagram yang menggambarkan nilai-nilai ini.

    Selain itu, diagram Peserta rata-rata menampilkan jumlah rata-rata peserta dalam setiap upaya penerapan.

Halaman detail Insight transaksi

Selidiki apakah bentuk transaksi dapat dioptimalkan untuk mengurangi latensi. Pertimbangkan untuk menerapkan praktik yang direkomendasikan untuk mengurangi persaingan kunci.

Langkah Berikutnya