Mengidentifikasi transaksi yang mungkin menyebabkan latensi tinggi

Halaman ini menjelaskan cara menggunakan Analisis kunci 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. Pertentangan kunci terjadi saat banyak transaksi memerlukan akses sering ke kunci yang sama, sehingga menyebabkan latensi tinggi. Tanpa antarmuka visual, mengidentifikasi transaksi bermasalah yang menyebabkan tingginya jumlah masalah pertentangan kunci mungkin akan merepotkan.

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

Spanner membantu Anda mengidentifikasi transaksi yang menghasilkan latensi tinggi dengan memandu Anda melakukan langkah-langkah berikut:

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

Harga

Tidak ada biaya tambahan untuk Analisis kunci atau Analisis 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 Analisis transaksi adalah 30 hari. Untuk grafik, data diambil dari tabel SPANNER_SYS.*, yang memiliki periode retensi data maksimum 30 hari.

Untuk 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 pengguna IAM atau pengguna kontrol akses terperinci.

Pengguna Identity and Access Management (IAM)

Untuk mendapatkan izin yang Anda perlukan agar dapat melihat halaman analisis Kunci dan Transaksi, minta administrator Anda untuk memberi Anda peran IAM berikut pada instance:

Izin berikut dalam peran Cloud Spanner Database Reader (roles/spanner.databaseReader) diperlukan untuk melihat halaman Kunci dan Analisis transaksi:

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

Pengguna kontrol akses yang mendetail

Jika Anda adalah pengguna kontrol akses yang mendetail, pastikan bahwa Anda:

  • Memiliki Cloud Spanner Viewer(roles/spanner.viewer)
  • Hanya memiliki hak istimewa kontrol akses terperinci dan diberi peran sistem spanner_sys_reader 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.

Memeriksa lonjakan latensi menggunakan Spanner Monitoring

Anda dapat menggunakan Cloud Monitoring guna menetapkan pemberitahuan untuk metrik yang melebihi batas yang ditentukan untuk semua permintaan.

Jika mendapatkan pemberitahuan yang menunjukkan lonjakan latensi untuk suatu instance, Anda dapat mengonfirmasinya di dasbor Monitoring Spanner, 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 tulis 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 akan menampilkan ringkasan instance.

  3. Klik Monitoring di menu navigasi.

    Konsol Google Cloud menampilkan diagram data untuk instance.

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

  5. Periksa diagram yang diperbarui untuk memeriksa apakah terdapat lonjakan.

Grafik yang menampilkan latensi tulis pada persentil ke-99

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

Memeriksa masalah pertentangan kunci menggunakan Insight kunci

Dasbor insight kunci membantu Anda melihat waktu tunggu penguncian pada instance atau database yang dipilih. Hal ini dapat membantu Anda mengonfirmasi apakah latensi yang tinggi disebabkan oleh pertentangan kunci.

Memeriksa waktu tunggu penguncian tinggi

Untuk memeriksa waktu tunggu penguncian tinggi, ikuti langkah-langkah berikut:

  1. Klik Kunci insight di menu navigasi.

    Konsol Google Cloud menampilkan diagram Waktu tunggu kunci total, yang menunjukkan waktu tunggu penguncian untuk setiap database dalam instance.

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

    Untuk informasi selengkapnya, lihat Bekerja dengan diagram.

  2. Dari pemilih Databases di bagian atas, pilih database yang menampilkan waktu tunggu kunci tertinggi.

    Diagram Waktu tunggu total kunci dimuat ulang agar hanya menampilkan data untuk database yang dipilih.

    Selain itu, diagram lainnya, Kunci waktu tunggu per rentang baris, menampilkan grafik untuk waktu tunggu kunci menurut rentang baris.

  3. Klik grafik, lalu tarik secara horizontal untuk memperluas jam saat lonjakan latensi terlihat.

Dasbor insight kunci

Menganalisis data waktu tunggu kunci

Tabel Lock Insights menampilkan kolom berikut dari tabel sistem SPANNER_SYS.LOCK_STATS:

  • Kunci awal rentang baris: Tombol baris tempat terjadinya konflik kunci. Jika konflik melibatkan rentang baris, nilai tersebut merepresentasikan kunci awal rentang tersebut. Tanda plus (+) menandakan rentang.
  • Waktu tunggu kunci: Total waktu tunggu kunci direpresentasikan secara visual pada panel horizontal. Secara default, tabel menggunakan kolom ini untuk mengurutkan dan menampilkan kunci awal rentang baris dengan waktu tunggu kunci tertinggi di bagian atas.
  • Waktu tunggu kunci (detik): Waktu tunggu penguncian kumulatif 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 menghubungkan data pada diagram Kunci tunggu per baris range dengan data dalam tabel, pilih sebuah garis. Baris terkait akan tampak disorot. Sebaliknya, centang kotak untuk sebuah baris dalam tabel guna melihat garis terkait pada diagram.

Tabel Insight kunci

Untuk memfilter data dalam tabel, lakukan tindakan berikut:

  1. Klik dalam kotak teks di samping Filter.

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

Tabel menampilkan data yang cocok dengan filter.

Lihat contoh permintaan penguncian

Panel Sample lock requests menampilkan detail tentang permintaan kunci contoh dari transaksi yang bersaing.

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

Tabel ini menampilkan kolom informasi berikut:

  • Contoh nama kolom: Kolom yang mengalami konflik kunci pada rentang tombol baris.
  • Mode kunci: Mode kunci yang diminta.
  • Lihat transaksi: Link ke halaman Transaction insights, yang menunjukkan transaksi yang mungkin bersaing untuk kunci.

Halaman detail Kunci insight

Mengidentifikasi transaksi yang bersaing menggunakan Analisis transaksi

Dasbor Insight transaksi membantu Anda melihat latensi dalam transaksi pada instance atau database yang dipilih. Hal ini dapat membantu Anda mengidentifikasi transaksi yang mungkin menyebabkan latensi tinggi karena pertentangan kunci.

Melihat latensi transaksi

Untuk melihat latensi transaksi, ikuti langkah-langkah berikut:

  1. Klik Analisis transaksi di navigasi kiri.

  2. Dari pemilih Databases di bagian atas, pilih database yang menampilkan waktu tunggu kunci tertinggi.

    Atau, di dasbor Kunci insight, klik Lihat transaksi untuk memfilter pembacaan atau penulisan transaksi ke kolom contoh tertentu.

    Data yang ditampilkan adalah untuk 1 hour secara default, seperti yang ditampilkan 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 untuk database yang dipilih.

Dasbor Analisis transaksi

Menganalisis data transaksi

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

  • Sidik jari: Hash tag transaksi, jika ada. Jika tidak, hash akan dihitung berdasarkan operasi yang terlibat dalam transaksi. Nilainya adalah link yang mengarah ke halaman Transaction Details.
  • 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 tempat transaksi dibaca.
  • Table.column Written: Kolom tempat transaksi ditulis.
  • Latensi rata-rata (detik): Rata-rata detik yang diperlukan untuk melakukan transaksi. Secara default, tabel diurutkan berdasarkan kolom ini dalam urutan menurun.

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

Untuk memfilter data dalam tabel, lakukan tindakan berikut:

  1. Klik di samping Filter.

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

Tabel menampilkan data yang cocok dengan filter.

Tabel Analisis transaksi

Melihat informasi mendetail tentang transaksi

Untuk melihat informasi mendetail tentang transaksi, seperti transaksi yang menampilkan latensi tertinggi, klik link Sidik Jari di baris masing-masing 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: Detik rata-rata yang diambil dari operasi pertama transaksi untuk melakukan commit atau membatalkan.
    • Latensi commit rata-rata: Rata-rata detik yang diperlukan untuk menjalankan operasi commit.
    • Total jumlah upaya: Total jumlah upaya transaksi.
    • Total jumlah pembatalan: Total jumlah upaya transaksi yang dibatalkan, termasuk yang dibatalkan sebelum memanggil metode commit transaksi.
  • Diagram yang menggambarkan nilai ini.

    Selain itu, diagram Peserta rata-rata menunjukkan jumlah rata-rata peserta dalam setiap upaya commit.

Halaman Detail analisis transaksi

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

Langkah Berikutnya