Kunci besar dan kunci panas dapat menurunkan performa layanan, menyebabkan waktu habis permintaan, atau bahkan mengakibatkan kegagalan sistem. Topik ini menjelaskan cara cepat menemukan dan mengoptimalkan kunci besar dan kunci panas, menganalisis penyebab serta dampaknya, dan memberikan langkah-langkah pencegahan untuk mengurangi dampaknya pada bisnis Anda.
Langkah 1: Cepat temukan kunci besar dan kunci panas
Alat konsol Alibaba Cloud
Tair dan Redis menyediakan fitur Statistik Kunci Teratas dan Analisis Penuh Kunci Offline di konsol untuk membantu Anda dengan cepat menemukan kunci besar dan kunci panas.
Metode | Batasan | Deskripsi | Prosedur |
Statistik Kunci Teratas (Direkomendasikan) | Fitur ini hanya didukung oleh Redis Edisi Open-Source 5.0 atau lebih baru, dan instans yang dioptimalkan memori dan memori persisten dari Tair (Edisi Perusahaan). |
|
|
Fitur ini tidak didukung pada instans berbasis disk. |
|
Jika instans Anda tidak mendukung fitur-fitur ini, Anda dapat menggunakan metode berikut.
Metode lain untuk menemukan kunci besar dan kunci panas
Langkah 2: Optimalkan kunci besar dan kunci panas
Kunci besar
Solusi | Skenario | Tindakan yang Direkomendasikan |
Bersihkan Data yang Kedaluwarsa | Sejumlah besar data yang kedaluwarsa telah terakumulasi, seperti data inkremental yang tidak dibersihkan dalam HASH. | Anda dapat menggunakan perintah HSCAN dengan perintah HDEL untuk membersihkan data yang tidak valid. Ini mencegah instans dari pemblokiran, yang dapat terjadi saat Anda membersihkan sejumlah besar data sekaligus. |
Kompres Kunci Besar | Data yang dapat dikompres seperti teks JSON dan XML, termasuk log dan konfigurasi. |
Catatan Operasi kompresi dan dekompresi mengonsumsi sumber daya CPU tambahan dan dapat memengaruhi performa pemrosesan. |
Pisahkan Kunci Besar | Struktur data yang sering diakses seperti HASH, ZSET, dan lainnya, seperti papan peringkat. |
Memisahkan kunci besar dapat secara efektif mencegah kesenjangan data. |
Pindahkan Kunci Besar | File besar atau Binary Large Objects (BLOB) dari tipe String. | Anda dapat menyimpan data yang tidak sesuai di sistem penyimpanan lain, seperti OSS, dan menghapusnya dari instans.
|
Tombol pintas
Solusi | Skenario | Tindakan yang Direkomendasikan |
Replikasi Kunci Panas dalam Arsitektur Kluster | Kunci panas disimpan secara keseluruhan di satu shard, dan permintaan tidak dapat didistribusikan dengan memigrasi sebagian data. | Salin kunci panas dan migrasikan replikanya ke shard data lain. Sebagai contoh, salin kunci panas bernama `foo` untuk membuat tiga kunci identik bernama `foo2`, `foo3`, dan `foo4`. Migrasikan ketiga kunci ini ke shard data lain untuk mengurangi tekanan pada shard data tunggal dengan kunci panas. Catatan Kekurangan dari solusi ini adalah Anda harus memodifikasi kode Anda untuk mempertahankan beberapa replika, dan sulit untuk memastikan konsistensi data di antara mereka. Misalnya, operasi pembaruan harus disinkronkan di semua replika. Gunakan solusi ini sebagai langkah sementara untuk meredakan masalah mendesak. |
Beban kerja dengan banyak bacaan dan sedikit penulisan | Jika beban permintaan baca masih tinggi setelah Anda mengaktifkan fitur ini, tambahkan lebih banyak node read-only untuk lebih mengurangi beban. Catatan Dalam skenario dengan volume permintaan yang sangat tinggi, sinkronisasi primer/sekunder akan memiliki latensi, yang dapat menyebabkan Anda membaca data kotor. Oleh karena itu, jangan aktifkan pemisahan baca/tulis dalam skenario dengan tekanan baca dan tulis tinggi dan persyaratan konsistensi data yang ketat. |
Langkah 3: Cegah kunci besar dan kunci panas memengaruhi bisnis Anda
Penyebab kunci besar dan kunci panas
Dalam Tair dan Redis, unit minimum untuk distribusi data adalah sebuah kunci. Satu kunci disimpan di shard data tertentu dan tidak dipisah. Faktor-faktor seperti perencanaan bisnis yang tidak memadai, akumulasi data tidak valid, dan peningkatan tiba-tiba dalam volume akses semuanya dapat menyebabkan pembentukan kunci besar dan kunci panas dalam sebuah instans. Contohnya meliputi hal-hal berikut:
Kategori | Penyebab |
Kunci besar |
|
Pintasan Keyboard |
|
Dampak kunci besar dan kunci panas
Kategori | Dampak |
Kunci besar |
|
Tombol Pintas |
|
Strategi pencegahan
Strategi | Deskripsi |
Tetapkan ambang batas peringatan yang wajar untuk metrik seperti penggunaan CPU, penggunaan memori, dan Koneksi. Sebagai contoh, atur peringatan ketika penggunaan memori melebihi 70% atau ketika memori bertambah lebih dari 20% dalam satu jam. Ketika peringatan dipicu, ikuti instruksi di Langkah 1 dan Langkah 2 dari topik ini untuk menemukan dan mengoptimalkan kunci besar dan kunci panas. Ini menyelesaikan masalah sebelum memengaruhi bisnis Anda. | |
Gunakan Tair (Edisi Perusahaan) untuk menghindari pembersihan data tidak valid | Untuk skenario yang melibatkan kunci besar tipe hash, Tair (Edisi Perusahaan) menyediakan struktur data yang ditingkatkan, TairHash. Ini mendukung pengaturan waktu kedaluwarsa dan versi untuk setiap bidang. Dengan menggunakan TairHash secara benar, Anda dapat secara signifikan mengurangi beban O&M, menyederhanakan kompleksitas kode bisnis, dan secara efektif menangani masalah yang disebabkan oleh kunci besar dan kunci panas. |