Menganalisis pohon kunci untuk Amazon Aurora PostgreSQL dengan Database Insights CloudWatch - Amazon CloudWatch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menganalisis pohon kunci untuk Amazon Aurora PostgreSQL dengan Database Insights CloudWatch

Untuk memecahkan masalah kinerja yang disebabkan oleh kunci, Anda dapat menganalisis pohon kunci untuk database Amazon Aurora PostgreSQL dengan Database Insights menggunakan yang berikut ini. CloudWatch

  • Diiris oleh dropdown - Pilih objek Pemblokiran, sesi Pemblokiran, atau Memblokir dimensi SQL dalam bagan pemuatan Database untuk melihat bagaimana pemblokir teratas yang berbeda berkontribusi pada Pemuatan DB dari waktu ke waktu. Dengan bagan beban DB, Anda dapat menganalisis apakah pemblokir teratas konstan atau sering berubah. Kemudian, Anda dapat memecahkan masalah pemblokir.

    Tabel SQL Teratas dengan Sesi Pemblokiran yang dipilih di Sliced by dropdown
  • Tab analisis kunci - Pilih Analisis Beban DB, lalu pilih tab Analisis kunci untuk melihat informasi tentang pertentangan kunci di database Anda.

    Tabel pohon Kunci di dasbor pemuatan Database
catatan

CloudWatch Database Insights mendukung analisis kunci untuk semua versi Aurora PostgreSQL. Untuk menganalisis pohon kunci, Anda harus mengaktifkan Mode Lanjut Wawasan Database. Untuk informasi tentang cara mengaktifkan mode lanjutan, lihat Mengaktifkan mode Advanced Database Insights untuk Amazon Aurora dan Mengaktifkan mode Advanced Database Insights untuk Amazon Relational Database Service

Tab analisis kunci memberikan informasi tentang pertentangan kunci untuk database Anda. Visualisasi pohon kunci menunjukkan hubungan dan dependensi antara permintaan kunci dari sesi yang berbeda.

Database Insights menangkap snapshot setiap 15 detik. Snapshot menampilkan data kunci untuk database Anda pada suatu titik waktu.

catatan

Saat CloudWatch mendeteksi penguncian tinggi, CloudWatch menampilkan spanduk terdeteksi penguncian tinggi untuk tab Analisis kunci. CloudWatch mendeteksi penguncian tinggi jika CloudWatch mengambil snapshot kunci untuk setiap interval 15 detik selama 15 menit berturut-turut.

Setiap node di pohon mewakili sesi tertentu. Node induk adalah sesi yang memblokir node turunannya.

Untuk menganalisis pohon kunci, gunakan prosedur berikut.

Untuk menganalisis pohon kunci
  1. Masuk ke AWS Management Console dan buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Pilih Wawasan.

  3. Pilih Wawasan Database.

  4. Pilih tampilan Database Instance.

  5. Pilih instans DB.

  6. Pilih tab analisis beban DB.

  7. Pilih tab Analisis kunci.

    Untuk melihat data kunci untuk instans DB, pilih periode 1 hari atau kurang.

  8. Pilih jendela snapshot. Secara default, Database Insights memilih jendela snapshot dengan sesi yang paling banyak diblokir.

    Tabel analisis kunci
  9. Untuk melihat data kunci untuk snapshot, pilih waktu Database Insights mengambil snapshot.

  10. Untuk memperluas pohon kunci, pilih panah di sebelah ID sesi.

    Pohon kunci diperluas

Kunci data snapshot

Database Insights menyediakan informasi berikut untuk setiap permintaan kunci. Untuk melihat kolom yang tidak diaktifkan secara default, pilih ikon Pengaturan untuk tabel Pohon kunci dan aktifkan kolom lainnya.

Nama kolom Definisi Kolom default Catatan

session_id

Pengidentifikasi sesi unik.

Ya

session_idItu berasal dariHEX(pg_stat_activity.backend_start).HEX(pg_locks.pid).

pid

PID dari backend ini.

Ya

pg_locks.pid

blocked_sessions_count

Jumlah sesi yang diblokir oleh kunci ini.

Ya

blocked_sessions_countIni berasal dari jumlah sesi yang IDs diblokir oleh kunci ini.

last_query_executed

Kueri terakhir dieksekusi oleh sesi ini. Untuk pemblokir, mungkin bukan kueri yang menahan kunci pemblokiran.

Ya

pg_stat_activity.query

wait_event

Nama acara tunggu jika backend sedang menunggu, jika tidak nilainya adalah NULL.

Ya

pg_stat_activity.wait_event

blocking_time_(In Seconds)

Waktu (dalam detik) sejak dimulainya kunci ini.

Ya

blocking_time_(In Seconds)Ini berasal dari waktu mulai transaksi menunggu (pg_locks.waitstart) untuk pelayan pertama.

blocking_mode

Mode kunci dipegang oleh sesi pemblokiran.

Tidak

pg_locks.mode

waiting_mode

Mode kunci diminta oleh sesi tunggu.

Tidak

pg_locks.mode

application

Nama aplikasi yang terhubung ke backend ini.

Tidak

pg_stat_activity.application_name

blocking_txn_start_time

Waktu mulai transaksi pemblokiran atau null jika tidak ada transaksi yang aktif.

Tidak

pg_stat_activity.xact_start

waiting_start_time

Waktu ketika sesi pengguna menunggu mulai menunggu kunci ini, atau null jika kunci ditahan.

Tidak

pg_locks.waitstart

session_start_time

Waktu ketika sesi pengguna dimulai.

Tidak

pg_stat_activity.backend_start

state

Keadaan backend.

Tidak

pg_stat_activity.state

wait_event_type

Jenis acara tunggu yang menunggu sesi ini.

Tidak

pg_stat_activity.wait_event_type

last_query_exec_time

Waktu ketika kueri terakhir dimulai.

Tidak

pg_stat_activity.query_start

user

Nama pengguna masuk ke backend ini.

Tidak

pg_stat_activity.usename

host

Nama host dari klien yang terhubung, seperti yang dilaporkan oleh pencarian DNS terbalik. client_addr Bidang ini hanya akan menjadi non-null untuk koneksi IP, dan hanya ketika log_hostname diaktifkan.

Tidak

pg_stat_activity.client_hostname

port

Nomor port TCP yang digunakan klien untuk komunikasi dengan backend ini, atau -1 jika soket Unix digunakan. Jika bidang ini nol, ini menunjukkan bahwa ini adalah proses server internal.

Tidak

pg_stat_activity.client_port

client_address

Alamat IP klien yang terhubung ke backend ini. Jika bidang ini nol, ini menunjukkan bahwa klien terhubung melalui soket Unix pada mesin server atau bahwa ini adalah proses internal seperti autovacuum.

Tidak

pg_stat_activity.client_addr

granted

Nilainya benar jika kunci ditahan dan false jika kunci ditunggu.

Tidak

pg_locks.granted

waiting_tuple

Nomor Tuple ditargetkan oleh kunci di dalam halaman, atau null jika target bukan Tuple.

Tidak

pg_locks.tuple

waiting_page

Nomor halaman yang ditargetkan oleh kunci dalam relasi, atau null jika targetnya bukan halaman relasi atau tupel.

Tidak

pg_locks.page

waiting_transaction_id

ID transaksi yang ditargetkan oleh kunci, atau null jika target bukan ID transaksi.

Tidak

pg_locks.transactionid

waiting_relation

OID dari relasi yang ditargetkan oleh kunci, atau nol jika target bukan relasi atau bagian dari relasi.

Tidak

pg_locks.relation

waiting_object_id

OID dari target kunci dalam katalog sistemnya, atau null jika target bukan objek database umum.

Tidak

pg_locks.objid

waiting_database_id

OID dari database di mana target kunci ada, atau nol jika target adalah objek bersama, atau null jika target adalah ID transaksi.

Tidak

pg_locks.database

waiting_database_name

Nama database di mana target kunci ada.

Tidak

pg_stat_activity.datname

waiting_locktype

Jenis objek yang dapat dikunci: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory, atau applytransaction.

Tidak

pg_locks.locktype

is_fastpath

Nilai benar jika kunci diambil dengan jalur cepat dan false jika diambil dari tabel kunci utama.

Tidak

pg_locks.fastpath

Untuk informasi selengkapnya tentang nilai dalam pg_stat_activity dan pg_locks tampilan, lihat topik berikut dalam dokumentasi PostgreSQL.