Mengidentifikasi transaksi yang mungkin menyebabkan latensi tinggi

Halaman ini menjelaskan cara menggunakan Insight 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 yang sering ke kunci yang sama, sehingga menyebabkan latensi tinggi. Tanpa antarmuka visual, akan sulit untuk mengidentifikasi transaksi bermasalah yang menyebabkan banyak masalah pertentangan kunci.

Operasi Spanner memperoleh kunci saat operasi tersebut merupakan 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 yang 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 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 agar dapat 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 Cloud Spanner Viewer(roles/spanner.viewer)
  • Hanya memiliki hak istimewa kontrol akses yang sangat terperinci dan diberi peran sistem spanner_sys_reader atau salah satu peran anggotanya.
  • Pilih spanner_sys_reader atau peran anggota sebagai peran sistem Anda 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 untuk menetapkan pemberitahuan untuk metrik yang melebihi nilai minimum yang ditentukan untuk semua permintaan.

Jika Anda mendapatkan pemberitahuan yang menunjukkan lonjakan latensi untuk 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 operasi 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 menampilkan ringkasan instance.

  3. Klik Pemantauan di menu navigasi.

    Konsol Google Cloud menampilkan diagram data untuk instance.

  4. Pada diagram Latency, tetapkan Function ke Write dan Percentile ke 99th.

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

Grafik yang menunjukkan latensi operasi tulis pada persentil ke-99

Jika Anda mengamati bahwa penggunaan CPU tidak mengalami lonjakan dan error mengalami lonjakan 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 kunci di instance atau database yang dipilih. Hal ini dapat membantu Anda mengonfirmasi apakah latensi tinggi disebabkan oleh pertentangan kunci.

Memeriksa waktu tunggu kunci yang tinggi

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

  1. Klik Kunci insight di menu navigasi.

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

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

    Untuk mengetahui informasi selengkapnya, lihat Menggunakan diagram.

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

    Diagram Total lock wait akan diperbarui untuk menampilkan data hanya untuk database yang dipilih.

    Selain itu, diagram lain, Lock wait per row range, menampilkan grafik untuk waktu tunggu kunci menurut rentang baris.

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

Dasbor Insight kunci

Menganalisis data tunggu kunci

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

  • Kunci awal rentang baris: Kunci baris tempat konflik kunci terjadi. Jika konflik melibatkan rentang baris, nilai tersebut mewakili kunci awal rentang. Tanda plus (+) menunjukkan rentang.
  • Lock wait: Total waktu tunggu kunci yang direpresentasikan secara visual pada batang horizontal. Secara default, tabel menggunakan kolom ini untuk pengurutan dan menampilkan kunci awal rentang baris dengan waktu tunggu kunci tertinggi di bagian atas.
  • Lock wait (detik): Waktu tunggu kunci kumulatif dari konflik kunci yang dicatat untuk semua kolom dalam rentang kunci baris, dalam detik.
  • Lock wait (%): 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 mengaitkan data pada diagram Lock wait per row range dengan data dalam tabel, pilih baris. 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 tindakan berikut:

  1. Klik kotak teks di samping Filter.

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

Tabel menampilkan data yang cocok dengan filter.

Melihat contoh permintaan kunci

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

Untuk melihat contoh informasi permintaan kunci 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 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 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 Insight transaksi di navigasi sebelah kiri.

  2. Dari pemilih Databases 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 contoh tertentu.

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

Dasbor menampilkan diagram berikut:

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

  • Diagram Rata-rata latensi (per transaksi) menampilkan latensi untuk setiap transaksi untuk 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 di 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 Written: Kolom yang ditulis oleh transaksi.
  • Rata-rata latensi (detik): Rata-rata detik yang diperlukan untuk melakukan transaksi. Secara default, tabel diurutkan berdasarkan kolom ini dalam urutan menurun.

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

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 Insight 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 berikut:

    • 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.
    • Rata-rata latensi commit: Detik rata-rata yang diperlukan untuk melakukan operasi commit.
    • Total jumlah percobaan: Total jumlah percobaan transaksi.
    • Total jumlah pembatalan: Jumlah total 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 Insight transaksi

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

Langkah Berikutnya