Menemukan hotspot di database Anda

Dokumen ini menjelaskan cara menggunakan dasbor insight Hotspot untuk mendeteksi hotspot di database Spanner Anda.

Ringkasan insight hotspot

Hotspot menyebabkan latensi di database Spanner Anda. Dasbor insight Hotspot membantu Anda mendeteksi pemisahan yang terpengaruh oleh hotspot. Gunakan langkah-langkah berikut untuk menentukan apakah hotspot menyebabkan latensi dan jika ya, cara menyelesaikan masalah tersebut:

  1. Buka dasbor.
  2. Tentukan apakah hotspot memerlukan intervensi Anda.
  3. Identifikasi pemisahan panas yang bermasalah.

Insight hotspot tersedia dalam konfigurasi satu region, multi-region, dan dual-region.

Harga

Tidak ada biaya tambahan untuk Insight hotspot.

Retensi data

Kebijakan retensi data untuk diagram insight Hotspot dan tabel perincian TopN didasarkan pada tabel SPANNER_SYS.SPLIT_STATS_TOP_* pokok. Untuk kebijakan retensi tertentu, lihat Retensi data statistik pemisahan panas.

Peran yang diperlukan

Anda mungkin 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 Anda perlukan guna melihat halaman Insight hotspot, minta administrator untuk memberi Anda peran IAM berikut di instance:

Izin berikut dalam peran Cloud Spanner Database Reader (roles/spanner.databaseReader) diperlukan untuk melihat halaman Insight hotspot:

  • 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)
  • 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 Anda saat ini di halaman Ringkasan database.

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

Membuka dasbor Insight hotspot

Dasbor Hotspot insights menampilkan persentase penggunaan CPU split puncak. Metrik ini adalah persentase abstrak 0 hingga 100 yang mencerminkan jumlah CPU yang digunakan saat baris dalam pemisahan diakses.

Untuk melihat dasbor Insight hotspot untuk database, lakukan tindakan berikut:

  1. Di konsol Google Cloud , buka halaman Spanner.

    Buka Spanner

  2. Pilih instance dari daftar.

  3. Di menu navigasi, klik tab Insight hotspot.

  4. Di kolom database, pilih database dari daftar. Dasbor menampilkan skor penggunaan CPU yang dibagi-bagi pada saat puncak untuk database.

Dasbor ini mencakup elemen berikut:

  • Grafik Skor penggunaan CPU split puncak: skor penggunaan CPU yang lebih tinggi (seperti mendekati 100) menunjukkan bahwa split panas dan sangat mungkin menyebabkan hotspot di server dibandingkan dengan skor yang lebih rendah.
  • Kolom database: memfilter informasi pemisahan aktif pada database tertentu atau semua database.
  • Filter rentang waktu: memfilter penggunaan CPU perincian puncak dengan inkremen 1 menit hingga total 6 jam.
  • Tabel pemisahan TopN: menampilkan daftar pemisahan teratas yang diurutkan berdasarkan skor penggunaan CPU pemisahan.

Dasbor Insight Hotspot di Spanner, yang menampilkan grafik penggunaan CPU split puncak, pemilih database, filter rentang waktu, dan tabel N split teratas yang paling sering diakses.

Memahami data dalam Tabel Pemisahan TopN: Tabel Pemisahan TopN diisi dengan data dari tabel SPANNER_SYS.SPLIT_STATS_TOP_* pokok berdasarkan rentang waktu yang Anda pilih. Untuk mengetahui informasi selengkapnya, lihat Retensi data statistik pemisahan cepat.

Menafsirkan Baris dari tabel 10MINUTE atau HOUR: Baris yang bersumber dari SPANNER_SYS.SPLIT_STATS_TOP_10MINUTE atau SPANNER_SYS.SPLIT_STATS_TOP_HOUR mewakili data gabungan selama interval masing-masing. Seperti yang dijelaskan dalam Agregasi peristiwa tabel, CPU_USAGE_SCORE dalam baris ini adalah skor maksimum yang terlihat dalam sub-interval 1 menit yang mendasarinya, dan UNSPLITTABLE_REASONS adalah gabungan alasan.

Menentukan apakah hotspot memerlukan intervensi

Jika Anda melihat lonjakan atau peningkatan pada grafik yang sesuai dengan latensi keseluruhan dan skor penggunaan CPU yang tinggi secara terus-menerus, Anda mungkin perlu menyelidiki lebih lanjut.

Tinjau grafik untuk mempelajari pertanyaan-pertanyaan ini:

  • Database mana yang mengalami penurunan latensi? Pilih berbagai database dari daftar Database untuk menemukan database dengan latensi tertinggi. Untuk mengetahui database mana yang memiliki beban tertinggi, Anda juga dapat meninjau diagram Latensi untuk database di konsol Google Cloud .

    Grafik garis berjudul 'Skor penggunaan CPU split puncak', yang menunjukkan skor penggunaan CPU split puncak dari waktu ke waktu. Grafik menampilkan lonjakan, yang dapat menunjukkan hotspot dan potensi masalah latensi.

  • Apakah latensinya tinggi? Apakah latensinya tinggi dibandingkan dengan latensi yang diharapkan untuk workload? Apakah grafiknya melonjak atau meningkat seiring waktu? Jika Anda tidak melihat latensi tinggi, berarti hotspot bukan masalahnya.

  • Apakah skor penggunaan CPU puncak tinggi yang dibagi adalah 100%? Apakah grafiknya melonjak atau meningkat seiring waktu? Jika Anda tidak melihat persentase penggunaan CPU puncak 100% yang persisten selama minimal 10 menit, berarti hotspot mungkin bukan masalahnya. Jika persentase penggunaan CPU yang dibagi-bagi mencapai puncaknya dalam waktu lebih dari 10 menit, Anda mungkin perlu menyelidikinya lebih lanjut untuk melihat apakah database memiliki tingkat latensi yang lebih tinggi dari yang diharapkan.

Jika Anda melihat persentase penggunaan CPU split puncak 100% selama lebih dari 10 menit, maka hotspot mungkin memerlukan intervensi Anda. Selanjutnya, Anda dapat melanjutkan perjalanan penelusuran masalah dengan mengidentifikasi pemisahan panas di database Anda.

Mengidentifikasi pemisahan panas yang bermasalah

Untuk mengidentifikasi pemisahan yang berpotensi bermasalah yang memiliki hotspot, lihat bagian Pemisahan TopN di konsol Google Cloud , seperti yang ditunjukkan di bawah.

Tabel 'TopN splits' di Spanner, yang mencantumkan pemisahan yang berpotensi bermasalah. Tabel ini mencakup kolom untuk 'Akhir interval', 'Awal pemisahan', 'Batas pemisahan', 'Skor penggunaan CPU yang dipisahkan', 'Tabel yang terpengaruh', dan 'Alasan tidak dapat dipisahkan'.

Tabel Pemisahan TopN memberikan ringkasan pemisahan yang mungkin populer selama jangka waktu yang dipilih, yang diurutkan dari yang terbaru hingga yang paling awal. Jumlah pemisahan TopN dibatasi hingga 100.

Untuk grafik, Spanner mengambil data dari tabel statistik pemisahan TopN dengan perincian satu menit. Nilai untuk setiap titik data dalam grafik mewakili nilai rata-rata selama interval satu menit.

Tabel menampilkan properti berikut:

  • Akhir interval: tanggal dan waktu saat penggunaan CPU puncak yang tinggi berakhir.
  • Mulai pemisahan: kunci awal rentang baris dalam pemisahan. Jika awal pemisahan adalah <begin>, ini menunjukkan awal rentang kunci database.
  • Batas pemisahan: kunci batas rentang baris dalam pemisahan. Jika kunci batas adalah <end>, ini menunjukkan akhir rentang kunci database.
  • Skor penggunaan CPU yang dibagi: skor abstrak antara 0 dan 100 yang mencerminkan jumlah CPU yang digunakan oleh akses ke baris dalam pembagian pada satu server. Gunakan skor penggunaan CPU untuk membantu mengevaluasi apakah Anda memiliki hotspot.
  • Tabel yang terpengaruh: tabel yang barisnya mungkin berada dalam pemisahan.
  • Alasan tidak dapat dibagi: Array alasan mengapa Spanner tidak dapat membagi lebih lanjut pemisahan yang sering diakses. Keberadaan nilai di sini menunjukkan bahwa pemisahan berbasis beban tidak dapat mengurangi hotspot karena alasan yang tercantum. Untuk mengetahui informasi selengkapnya, lihat Jenis UNSPLITTABLE_REASONS.

Menganalisis alasan tidak dapat dibagi

Tabel Pemisahan TopN memungkinkan Anda melihat perincian pemisahan spesifik mana yang terpengaruh oleh alasan ini pada waktu tertentu, seperti yang ditunjukkan di kolom Alasan tidak dapat dipisahkan.

Contoh alur kerja diagnosis

Berikut adalah alur kerja umum untuk men-debug hotspot menggunakan dasbor:

  1. Amati masalah performa: Perhatikan peningkatan latensi atau error di aplikasi Anda.
  2. Buka Insight hotspot: Buka dasbor Insight hotspot di konsol Google Cloud untuk database Spanner yang relevan. Pilih rentang waktu yang sesuai dengan masalah tersebut.
  3. Periksa grafik:
    • Periksa grafik Skor penggunaan CPU puncak yang dipisahkan untuk nilai tinggi yang berkelanjutan, misalnya, >50%, terutama mendekati 100% yang berlangsung setidaknya selama 10 menit.
  4. Identifikasi pemisahan yang terpengaruh dan korelasikan temuan: Jika penggunaan CPU tinggi, buka tabel Pemisahan TopN. Filter atau urutkan untuk menemukan pemisahan dengan Skor penggunaan CPU pemisahan tertinggi selama waktu dampak. Periksa kolom UNSPLITTABLE_REASONS untuk melihat pemisahan teratas berikut:
    • Skor penggunaan CPU split tinggi dan alasan tidak dapat dibagi: Ini adalah sinyal kuat bahwa masalah performa terkait dengan hotspot yang tidak dapat diselesaikan secara otomatis oleh Spanner. Jenis alasan, seperti HOT_ROW atau MOVING_HOT_SPOT, memberikan petunjuk penting.
    • Skor penggunaan CPU yang dibagi tinggi dan tidak ada alasan tidak dapat dibagi: Hotspot mungkin baru, dan Spanner mungkin masih dalam proses pembagian. Atau, masalah mungkin merespons perubahan dalam workload, yang tidak memerlukan tindakan dari Anda.
  5. Pahami alasannya: Perhatikan kode tertentu dalam array UNSPLITTABLE_REASONS.
  6. Mitigasi: Berdasarkan alasan yang diidentifikasi, lihat jenis UNSPLITTABLE_REASONS untuk penjelasan mendetail dan strategi mitigasi yang direkomendasikan, yang biasanya melibatkan perubahan desain skema atau penyesuaian workload.

Langkah berikutnya