Tablet panas

Untuk membantu Anda memecahkan masalah performa, Bigtable menyediakan kemampuan untuk mengidentifikasi dan mengamati tablet panas dalam cluster. Halaman ini menjelaskan hot tablet, memberi tahu Anda cara mendapatkan daftar hot tablet, dan membahas situasi saat mengidentifikasi hot tablet akan membantu. Sebelum membaca halaman ini, Anda harus membaca ringkasan Bigtable.

Nama metode yang Anda gunakan untuk mendapatkan daftar tablet panas bervariasi bergantung pada bahasa yang digunakan. Untuk memudahkan, dalam dokumen ini metode tersebut disebut dengan nama RPC Cloud Bigtable Admin API-nya, ListHotTablets. Anda bisa mendapatkan daftar hot tablet menggunakan hal berikut:

Mengidentifikasi tablet panas dapat membantu Anda melakukan tugas berikut:

Memahami tablet panas

Tabel Bigtable di-sharding menjadi blok baris yang berdekatan, yang disebut tablet, untuk membantu menyeimbangkan beban kerja kueri. Setiap tablet dikaitkan dengan node, dan operasi pada baris ini dilakukan di node. Untuk mengoptimalkan performa, tablet dibagi atau dipindahkan ke node lain bergantung pada pola akses. Berdasarkan pola akses pengguna — operasi baca, tulis, dan pemindaian — tablet akan diseimbangkan kembali di seluruh node. Untuk mengetahui detail tentang load balancing, lihat Cara Bigtable mengoptimalkan data Anda dari waktu ke waktu.

Hot tablet adalah tablet yang menunjukkan penggunaan CPU node yang berlebihan karena tablet menggunakan persentase CPU yang tidak proporsional dibandingkan dengan tablet lainnya. Penggunaan node yang tidak seimbang ini dapat menyebabkan latensi dan penundaan replika.

Di antara penyebab paling sering terjadinya hot tablet adalah hotspot, yang terjadi saat aplikasi Anda sering mengakses baris yang berdekatan dalam tabel. Hotspot sering kali merupakan hasil dari desain skema yang tidak dioptimalkan untuk menyebarkan pola akses aplikasi Anda di seluruh tabel. Untuk mempelajari cara mendesain row key agar hotspot tidak terjadi, lihat Praktik terbaik desain skema.

Untuk mendapatkan daftar tablet panas, Anda harus diberi peran yang memiliki izin bigtable.viewer.

Output

Metode ListHotTablets menampilkan data berikut untuk cluster tertentu dalam instance.

  • Nama tablet. ID unik yang ditetapkan oleh Bigtable ke hot tablet. Kolom ini tidak ditampilkan oleh gcloud CLI.
  • Tabel. ID tabel yang terkait dengan tablet panas.
  • Penggunaan CPU. Pemakaian CPU rata-rata node yang terkait dengan hot tablet, dinyatakan sebagai persentase, selama interval satu menit tersebut. Persentase ini adalah rata-rata jumlah CPU Tulis dan CPU Baca dari waktu mulai hingga waktu berakhir.
  • Waktu mulai. Waktu mulai periode tablet panas.
  • Waktu berakhir. Waktu akhir periode tablet panas.
  • Tombol mulai. Kunci baris pertama di tablet panas.
  • Kunci akhir. Kunci baris terakhir di tablet panas. Akhiran \000 ditambahkan jika kunci awal dan akhir sama, yang menunjukkan bahwa tablet mencakup satu baris.

Kunci diurutkan secara leksikografis dalam tablet, sehingga setiap tombol antara tombol awal dan tombol akhir terdapat dalam tablet panas tersebut.

Hotspot dihitung pada resolusi satu menit, dan tablet mungkin muncul kembali dalam output. Dengan kata lain, satu tablet mungkin dianggap panas selama beberapa menit.

Secara default, ListHotTablets menelusuri 24 jam terakhir. Untuk menelusuri dalam rentang waktu tertentu, berikan waktu mulai dan waktu berakhir.

Jumlah maksimum tablet panas yang ditampilkan adalah 50. Untuk mengubahnya, berikan ukuran halaman.

Metode ini menampilkan daftar kosong jika tidak ada tablet di cluster yang panas.

Contoh penggunaan gcloud CLI

Sebelum menyalin contoh ini, instal gcloud CLI.

Untuk melihat daftar tablet panas untuk cluster tertentu, jalankan perintah hot-tablets list di Cloud Shell atau jendela terminal lokal Anda.

  gcloud bigtable hot-tablets list CLUSTER_ID --instance INSTANCE_ID

Ganti kode berikut:

  • CLUSTER_ID: ID permanen untuk cluster
  • INSTANCE_ID: ID permanen untuk instance

Jika ada tablet di cluster yang panas, terminal akan menampilkan output yang mirip dengan berikut. Tablet panas dalam cluster dicantumkan dalam urutan menurun penggunaan CPU.

TABLE      CPU_USAGE  START_TIME                 END_TIME                   START_KEY            END_KEY
test-data  89.3       2021-12-14T01:19:57+00:00  2021-12-14T01:20:57+00:00  user29333893046…    user29333893046…
test-data  22.8       2021-12-14T01:04:59+00:00  2021-12-14T01:06:59+00:00  user29333893046…    user29345657428…
test-data  20.9       2021-12-14T01:18:56+00:00  2021-12-14T01:20:56+00:00  user54519105346…    user545293
test-data  16.5       2021-12-14T01:18:56+00:00  2021-12-14T01:20:56+00:00  user49196524328…    user49206

Kasus penggunaan untuk data tablet panas

Mengidentifikasi tablet panas di cluster dapat membantu Anda memecahkan masalah performa. Anda dapat menggunakan metode ListHotTablets bersama dengan alat pemantauan lainnya, seperti alat diagnostik Key Visualizer untuk Bigtable.

Mengidentifikasi kunci baris yang bermasalah

Anda dapat menggunakan ListHotTablets untuk mengidentifikasi kunci baris dan rentang baris tertentu. Hal ini dapat memberikan visibilitas ke pola akses yang mungkin menyebabkan hotspot.

Misalnya, skema kunci baris tabel adalah [user_id]#[event_timestamp], ID pengguna, dan stempel waktu yang dipisahkan oleh simbol hash. Mendapatkan daftar tablet panas dapat membantu Anda menentukan apakah ID pengguna atau stempel waktu peristiwa tertentu menyebabkan hotspot. Dengan mengidentifikasi pola akses, Anda dapat mengambil tindakan lebih lanjut, seperti mendesain ulang kunci baris atau tabel untuk menyebarkan penggunaan secara lebih merata di seluruh ruang kunci. Dalam contoh ini, jika ID pengguna bertambah secara monoton dan menyebabkan hotspot karena alasan tersebut, Anda dapat menetapkan ID pengguna dalam urutan yang berbeda atau menggunakan ID unik universal (UUID) sebagai gantinya.

Jika kunci baris awal dan akhir sama, dan kunci baris akhir ditambahkan dengan akhiran \000, kunci tersebut akan membuat satu tablet baris. Jika tablet ini menerima traffic dalam jumlah yang tidak proporsional, hal ini akan menyebabkan hot spot.

Mengamati hotspot dengan tingkat perincian menit

Anda dapat menggunakan daftar tablet panas yang dikombinasikan dengan peta panas Key Visualizer. Meskipun Key Visualizer adalah alat yang baik untuk mengamati gambaran yang lebih besar tentang pola akses ruang kunci, ListHotTablets memberikan tingkat perincian yang lebih besar.

Setelah memeriksa peta panas di Key Visualizer, Anda dapat menjelajahi lebih lanjut titik panas tertentu. Karena Key Visualizer berjalan selama beberapa minggu, datanya untuk hotspot digabungkan dalam interval 15 menit. Selain itu, beberapa tablet dapat digabungkan dalam ruang kunci Key Visualizer yang sama.

Setelah menggunakan Key Visualizer untuk mengidentifikasi rentang waktu terjadinya hotspot, Anda dapat menjalankan ListHotTablets untuk mendapatkan perincian yang lebih besar dalam ruang kunci dan waktu. Tingkat perincian yang lebih tinggi sangat berguna untuk penggunaan berkala. ListHotTablets dapat mengidentifikasi hotspot berumur pendek yang tidak dapat dilakukan KeyVisualizer.

Mengidentifikasi tabel yang bermasalah dalam cluster

Karena Key Visualizer beroperasi di tingkat tabel, alat ini tidak selalu menjadi pilihan terbaik untuk memecahkan masalah di cluster yang memiliki beberapa tabel. ListHotTablets beroperasi di tingkat cluster, sehingga Anda dapat menggunakannya untuk mengidentifikasi tabel dengan penggunaan CPU yang tinggi dan mempersempit masalah.

Langkah selanjutnya