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:
- Periksa lonjakan latensi menggunakan Spanner Monitoring.
- Periksa masalah pertentangan kunci menggunakan Insight kunci.
- 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:
-
Viewer Cloud Spanner (
roles/spanner.viewer
) -
Pembaca Database Cloud Spanner (
roles/spanner.databaseReader
)
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:
Di konsol Google Cloud, buka halaman Spanner Instances.
Klik nama instance.
Konsol Google Cloud akan menampilkan ringkasan instance.
Klik Monitoring di menu navigasi.
Konsol Google Cloud menampilkan diagram data untuk instance.
Pada diagram Latensi, tetapkan Function ke
Write
dan Persentil ke99th
.Periksa diagram yang diperbarui untuk memeriksa apakah terdapat lonjakan.
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:
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, seperti1 day
.Untuk informasi selengkapnya, lihat Bekerja dengan diagram.
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.
Klik grafik, lalu tarik secara horizontal untuk memperluas jam saat lonjakan latensi terlihat.
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.
Untuk memfilter data dalam tabel, lakukan tindakan berikut:
Klik dalam kotak teks di samping Filter.
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.
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:
Klik Analisis transaksi di navigasi kiri.
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.
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:
Klik di samping Filter.
Pilih properti, pilih operator, dan tentukan nilai.
Tabel menampilkan data yang cocok dengan filter.
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.
Selidiki apakah bentuk transaksi dapat dioptimalkan untuk mengurangi latensi. Pertimbangkan untuk menerapkan praktik yang direkomendasikan untuk mengurangi pertentangan kunci.