Memecahkan masalah latensi

Seperti sistem database lainnya, Bigtable dapat mengalami masalah latensi. Dokumen ini membahas penyebab umum masalah latensi di Bigtable dan menjelaskan cara memecahkannya.

Mendiagnosis dan menyelesaikan masalah latensi Bigtable menggunakan langkah-langkah pemecahan masalah di bagian berikut:

Memahami penyebab latensi tinggi

Faktor-faktor berikut berkontribusi terhadap masalah latensi di Bigtable:

  • Latensi server. Pengukuran latensi server dimulai saat Bigtable menerima permintaan dan berakhir saat Bigtable mengirimkan byte data terakhir ke klien. Untuk permintaan data dalam jumlah besar, kemampuan klien untuk menggunakan respons dapat memengaruhi latensi server.
  • Latensi operasi mengukur total waktu end-to-end untuk operasi Bigtable, termasuk semua percobaan ulang. Metrik ini melacak round trip dari klien ke Bigtable dan kembali ke klien. Latensi aplikasi, koneksi jaringan, latensi library klien Bigtable, dan latensi server semuanya memengaruhi latensi operasi.
  • Pola permintaan dan beban kerja dapat meningkatkan latensi tidak hanya karena masalah infrastruktur, tetapi juga karena perubahan pada pola kerja yang diminta aplikasi. Misalnya, kueri pemindaian yang dibuat secara dinamis yang sebelumnya memindai seratus baris, kini memindai satu juta baris karena impor data baru atau perubahan dalam logika aplikasi. Meskipun sistem mungkin beroperasi secara efisien, peningkatan signifikan dalam jumlah pekerjaan untuk satu operasi menghasilkan waktu eksekusi yang lebih lama, yang dianggap Bigtable sebagai latensi yang lebih tinggi.

Sebelum memulai

Untuk memecahkan masalah latensi tinggi, lakukan tugas berikut:

  • Aktifkan metrik sisi klien untuk pustaka klien Anda guna mengoptimalkan performa dan menyelesaikan masalah.
  • Untuk meminimalkan latensi jaringan, pastikan aplikasi Anda berada di zona yang sama dengan cluster Bigtable Anda. Hal ini mengurangi jarak jaringan antara aplikasi dan cluster Anda, yang meningkatkan waktu respons untuk permintaan.
  • Kumpulkan informasi berikut tentang lingkungan Bigtable Anda:
  • Kumpulkan informasi berikut tentang lingkungan sisi klien Anda:
  • Kumpulkan informasi berikut tentang masalah ini:

Memecahkan masalah latensi

Jika Anda mengalami masalah latensi di Bigtable, ikuti langkah-langkah berikut untuk memecahkan masalah:

  1. Periksa latensi server: Gunakan halaman Monitoring di konsol Google Cloud untuk melihat latensi server. Untuk mengetahui informasi selengkapnya, lihat Memantau dengan Cloud Monitoring. Periksa latensi instance Anda. Jika instance berisi beberapa cluster, potong metrik menurut cluster. Jika Anda mengamati peningkatan latensi dalam grafik latensi baca atau latensi tulis, atau dalam metrik sisi klien, ikuti langkah-langkah pemecahan masalah latensi server di bagian Memecahkan masalah latensi server dalam dokumen ini.
  2. Periksa latensi klien: Setelah mengaktifkan metrik sisi klien, telusuri bigtable.googleapis.com/client di Metrics Explorer Cloud Monitoring. Tinjau metrik sisi klien yang tersedia. Jika Anda melihat peningkatan latensi di metrik sisi klien, tetapi tidak di server, periksa aplikasi dan koneksi jaringan Anda. Untuk mengetahui informasi selengkapnya, lihat bagian Memecahkan masalah latensi klien dalam dokumen ini.

Diagram berikut menunjukkan proses pemecahan masalah peningkatan latensi di Bigtable:

Diagram alur untuk memecahkan masalah latensi Bigtable.
Gambar 1. Proses pemecahan masalah latensi Bigtable (klik untuk memperbesar).

Memecahkan masalah latensi klien

Ikuti langkah-langkah berikut untuk memecahkan masalah latensi sisi klien.

Sebelum memulai

Sebelum Anda mulai memecahkan masalah latensi sisi klien, selesaikan tugas-tugas berikut:

  • Aktifkan metrik sisi klien di Bigtable.
  • Aktifkan persiapan saluran jika Anda menggunakan klien Java versi 2.17.1 atau yang lebih lama. Penyegaran saluran diaktifkan secara default mulai dari versi 2.18.0.
  • Lakukan iterasi untuk menentukan ukuran kumpulan koneksi yang optimal untuk beban kerja Anda. Saluran yang tidak memadai atau berlebihan dapat menyebabkan latensi percobaan yang tinggi.

Memeriksa latensi pemblokiran aplikasi

Periksa metrik Application Blocking Latencies di konsol Google Cloud dan lakukan salah satu tindakan berikut:

  • Jika latensi pemblokiran aplikasi tinggi dan sesuai dengan peningkatan latensi yang dilaporkan, fokuslah pada pemecahan masalah sisi klien.
  • Jika latensi yang memblokir aplikasi tinggi dan klien dihosting di infrastrukturGoogle Cloud , seperti GKE atau Compute Engine, eskalasikan ke tim dukungan Google Cloud yang sesuai.
  • Jika latensi pemblokiran aplikasi rendah dan latensi penayangan Bigtable juga rendah, hambatan latensi kemungkinan terletak pada komponen perantara jalur traffic atau jaringan, seperti jaringan atau frontend Google. Pertimbangkan untuk meningkatkan masalah ini ke Google Cloud tim jaringan untuk membantu Anda melakukan pengambilan paket lengkap guna mengidentifikasi penyebab bottleneck latensi.

Mengatasi latensi operasi yang tinggi

  1. Jika connectivity_error_count tinggi, aplikasi mengalami masalah dalam menjangkau frontend Google. Tetapkan waktu tunggu RPC yang lebih rendah agar permintaan dapat dicoba ulang di saluran yang berbeda.
    • Jika waktu tunggu RPC terlalu rendah, hal ini juga dapat menyebabkan latensi operasi yang tinggi. Tentukan waktu tunggu RPC P99 yang umum selama operasi normal. Menetapkan nilai waktu tunggu RPC yang lebih dekat dengan tolok ukur ini akan membantu mengoptimalkan performa.
  2. Jika retry_count tinggi, periksa tag status attempt_latencies. Jika upaya gagal dengan error DEADLINE_EXCEEDED, batas waktu permintaan terlalu singkat dibandingkan dengan attempt_latencies rata-rata.

Menangani permintaan yang diantrekan di thread gRPC

Jika tidak ada metrik yang melebihi norma, permintaan mungkin mengantre di thread gRPC. Hal ini dapat terjadi karena alasan berikut:

  • Ukuran kumpulan saluran terlalu kecil, dan permintaan mengantre di saluran gRPC. Untuk mengetahui informasi selengkapnya, lihat Permintaan yang di-buffer.
  • Penggunaan CPU VM klien tinggi. Penggunaan CPU yang tinggi juga menyebabkan antrean permintaan di klien.

Memecahkan masalah latensi server

Ikuti langkah-langkah berikut untuk memecahkan masalah latensi sisi server.

Menentukan apakah cluster kelebihan beban

  1. Periksa grafik Read requests dan Write requests untuk melihat perubahan QPS.
  2. Periksa grafik Node count untuk mengetahui perubahan jumlah node.
  3. Periksa grafik Read throughput dan Write throughput untuk mengetahui peningkatan bandwidth. Untuk mengetahui informasi selengkapnya, lihat Memahami performa.
  4. Untuk mengidentifikasi cara CPU digunakan oleh profil aplikasi, metode, dan tabel untuk memecahkan masalah performa, lihat postingan blog Di mana CPU cluster Cloud Bigtable Anda digunakan?.
  5. Tingkatkan jumlah node di cluster yang terpengaruh. Untuk mengetahui informasi selengkapnya, lihat Menambahkan atau menghapus node secara manual. dan Penskalaan otomatis. Verifikasi bahwa pemakaian CPU rata-rata tetap berada di bawah nilai minimum yang direkomendasikan.

Memeriksa hotspot

Tablet yang panas menggunakan persentase CPU node yang sangat besar secara tidak proporsional dibandingkan dengan tablet lain yang terkait dengan node tersebut. Penggunaan yang tidak seimbang ini dapat terjadi karena volume permintaan yang tinggi dan tidak terduga ke rentang baris atau kekurangan dalam desain skema. Penggunaan node yang tidak seimbang ini dapat menyebabkan latensi yang lebih tinggi dan penundaan replikasi, yang dikenal sebagai hotspot.

  1. Amati titik aktif dalam grafik CPU utilization (hottest node) high granularity grafik.
  2. Untuk mengidentifikasi tablet yang panas, gunakan tablet panas atau alat Key Visualizer.
  3. Tidak seperti pemakaian CPU berlebih di tingkat cluster, yang sering kali dapat Anda atasi dengan menambahkan lebih banyak node (penskalaan horizontal), hotspot mungkin memerlukan teknik mitigasi lain. Teknik ini mencakup perubahan cara Anda membuat kunci baris atau mengubah skema. Untuk mengetahui informasi selengkapnya, lihat postingan blog Menghilangkan hotspot di Cloud Bigtable.

Mengatasi latensi dengan QPS rendah

Bigtable memiliki performa terbaik dengan tabel besar yang sering Anda akses. Jika Anda mengirim permintaan setelah tidak digunakan selama beberapa waktu, Anda mungkin melihat latensi yang tinggi saat Bigtable membangun kembali koneksi.

  1. Jika grafik Read requests dan Write requests menunjukkan QPS rendah, waktu respons akan lebih lambat.
  2. Atasi masalah cold start dengan mengikuti praktik terbaik di Cold start dan QPS rendah.

Mengevaluasi efisiensi permintaan

Mengevaluasi efisiensi permintaan menggunakan statistik kueri. Statistik kueri menunjukkan rasio baris yang terlihat terhadap baris yang ditampilkan dan sel yang terlihat terhadap sel yang ditampilkan, yang menunjukkan efisiensi kueri. Tingkatkan efisiensi permintaan dengan meninjau kembali pola kueri atau desain skema. Untuk mengetahui informasi selengkapnya, lihat Mendapatkan statistik kueri.

Memeriksa perubahan konfigurasi atau profil aplikasi

Jika jumlah node dan throughput tetap tidak berubah, tetapi penggunaan CPU rata-rata meningkat, hal ini mungkin disebabkan oleh perubahan dalam strategi replikasi atau pengumpulan sampah. Untuk mengetahui informasi selengkapnya, lihat Replikasi dan performa. Membatalkan perubahan konfigurasi apa pun untuk replikasi atau pengumpulan sampah.

Melakukan eskalasi ke dukungan Bigtable

Jika langkah-langkah sebelumnya tidak menyelesaikan masalah, eskalasikan ke dukungan Bigtable.

Langkah berikutnya