FAQ Memorystore for Valkey

Di halaman ini, Anda akan menemukan jawaban atas pertanyaan umum (FAQ) berikut tentang penggunaan Memorystore untuk Valkey:

Berapa banyak memori dan CPU yang sebaiknya Anda gunakan?

Sebaiknya penggunaan memori Anda tidak melebihi 80%. Sebaiknya Anda menjalankan dengan pemanfaatan CPU rata-rata sebesar 60%. Dengan demikian, Anda dapat mentoleransi hilangnya satu zona ketersediaan, yang kira-kira sepertiga dari total kapasitas Anda. Untuk skenario ini, penggunaan CPU rata-rata pada node yang tersisa adalah sekitar 90%.

Bagaimana cara memantau jumlah CPU dan memori yang Anda gunakan?

Untuk memantau penggunaan CPU untuk node Memorystore for Valkey utama dan replika baca, gunakan metrik /instance/cpu/maximum_utilization. Metrik ini mengukur penggunaan CPU maksimum di semua node dalam instance Anda, dari 0,0 (0%) hingga 1,0 (100%). Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik penggunaan CPU.

Untuk memantau memori yang digunakan oleh node Memorystore for Valkey utama dan replika baca, gunakan metrik /instance/node/memory/utilization. Metrik ini mengukur penggunaan memori untuk satu node dalam instance Anda, dari 0,0 (0%) hingga 1,0 (100%).

Bagaimana cara menyiapkan pemberitahuan untuk memantau penggunaan CPU dan memori?

Untuk menyetel pemberitahuan pemantauan untuk penggunaan CPU dan memori, gunakan Cloud Monitoring. Misalnya, Anda dapat menyetel pemberitahuan untuk memberi tahu Anda jika metrik /instance/memory/maximum_utilization melebihi nilai minimum yang Anda tetapkan. Untuk mengetahui informasi selengkapnya, lihat Menetapkan pemberitahuan Pemantauan untuk penggunaan memori.

Berapa banyak koneksi dari aplikasi klien yang sebaiknya Anda biarkan tetap terbuka?

Sebaiknya gunakan tolok ukur untuk klien Anda guna menentukan setelan yang optimal. Titik awal yang direkomendasikan dari setiap klien adalah satu koneksi per node Valkey. Untuk mengetahui informasi selengkapnya, lihat Menghindari kelebihan beban koneksi di Valkey.

Sebaiknya aktifkan pipelining untuk klien Anda agar klien Anda dapat memproses lebih banyak permintaan dan memprosesnya lebih cepat.

Bagaimana cara memantau jumlah koneksi klien untuk instance Anda?

Untuk memantau jumlah koneksi klien yang Anda gunakan, gunakan metrik /instance/node/clients/connected_clients. Metrik ini mengukur jumlah klien yang terhubung ke setiap node instance Anda.

Apa yang Anda lakukan jika memiliki terlalu banyak koneksi klien?

Jumlah maksimum koneksi klien Anda, yang dapat Anda temukan dengan menggunakan metrik /instance/clients/maximum_connected_clients, harus kurang dari nilai yang terkait dengan parameter maxclients. Jika nilainya sama, lakukan hal berikut:

Misalkan Anda memiliki acara mendatang yang akan menyebabkan lonjakan traffic untuk bisnis Anda? Apa yang harus Anda lakukan?

Anda dapat mengonfigurasi Memorystore for Valkey agar sesuai dengan kebutuhan bisnis Anda. Untuk skenario ini, Anda dapat meningkatkan kapasitas instance dengan cara berikut:

  • Anda dapat menambahkan shard ke instance. Hal ini memberikan penggunaan CPU yang lebih besar pada instance untuk menangani volume data atau traffic yang lebih besar. Kapasitas instance Anda ditentukan oleh jumlah shard di instance Anda. Dengan menambahkan shard, aplikasi Anda dapat menangani peningkatan permintaan tanpa penurunan performa.
  • Anda dapat mengubah jenis node ke jenis node yang lebih besar. Hal ini memberi instance lebih banyak memori. Kapasitas instance Anda ditentukan oleh jenis node instance Anda. Misalnya, Anda dapat mengubah jenis node dari jenis node standard-small menjadi jenis node highmem-medium.

Sebaiknya tingkatkan kapasitas instance Anda beberapa hari sebelum acara. Selain itu, untuk membantu Anda menskalakan kapasitas instance, dan untuk meningkatkan kecepatan dan keandalan penskalaan instance, lakukan penskalaan selama periode traffic rendah. Untuk mempelajari cara memantau traffic instance, lihat Memantau instance.

Bagaimana cara Anda mengamankan data Anda?

Untuk mengamankan data Anda, Memorystore for Valkey menyediakan mekanisme berikut:

  • Autentikasi Identity and Access Management (IAM): gunakan IAM untuk membantu Anda mengelola akses login bagi pengguna dan akun layanan Anda. Autentikasi berbasis IAM terintegrasi dengan AUTH Valkey, sehingga Anda dapat merotasi kredensial (token IAM) dengan lancar tanpa mengandalkan sandi statis.
  • Enkripsi dalam transit: mengenkripsi semua traffic Valkey menggunakan protokol Transport Layer Security (TLS). Jika enkripsi dalam transit diaktifkan, klien Valkey akan berkomunikasi melalui koneksi yang aman. Klien Valkey yang tidak dikonfigurasi untuk TLS akan diblokir.

Apa saja praktik terbaik untuk kode klien?

Untuk menggunakan kode klien dengan Memorystore untuk Valkey secara optimal, sebaiknya Anda menggunakan praktik terbaik berikut:

  • Untuk menghubungkan aplikasi Anda ke instance Cluster Mode Enabled Memorystore for Valkey, gunakan klien yang kami rekomendasikan, seperti valkey-go, iovalkey, valkey-py, atau Valkey GLIDE.

    Jika Anda menggunakan klien yang berbeda, pastikan Anda menggunakan klien Valkey yang kompatibel dengan cluster yang mempertahankan peta slot hash ke node yang sesuai dalam instance. Akibatnya, permintaan dapat dikirim ke node yang benar. Hal ini mencegah overhead performa yang disebabkan oleh pengalihan. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik klien Valkey.

  • Sebaiknya tetapkan interval waktu tunggu koneksi ke lima detik dan interval waktu tunggu permintaan ke 10 detik. Jika Anda menetapkan waktu tunggu ke interval yang lebih kecil, Memorystore for Valkey mungkin mengalami badai koneksi ulang, yang dapat membahayakan layanan.

  • Gunakan backoff eksponensial sebagai strategi penanganan error standar untuk aplikasi jaringan saat klien mencoba lagi permintaan yang gagal secara berkala dengan penundaan yang meningkat di antara permintaan.

  • Gunakan contoh kode library klien kami. Sebagai contoh, nilai default untuk klien valkey-go memenuhi semua rekomendasi kami sehingga Anda tidak perlu mengonfigurasi apa pun untuk klien ini.

Apa opsi Anda untuk ketahanan data?

Memorystore for Valkey menyediakan fitur berikut untuk ketahanan data:

  • Ketersediaan tinggi: Memorystore for Valkey menyediakan kapasitas redundan di node replika. Jika terjadi kegagalan, Memorystore for Valkey dapat menggunakan kapasitas ini untuk beroperasi tanpa waktu henti.

  • Persistensi: Jika lingkungan Anda tiba-tiba mengalami error, Memorystore untuk Valkey akan memulihkan lingkungan secara otomatis. Hal ini dikenal sebagai persistensi.

    Memorystore for Valkey menawarkan jenis persistensi berikut:

    • Persistensi Redis Database (RDB): melindungi data Anda dengan menyimpan snapshot data Anda di penyimpanan yang tahan lama. Anda memilih frekuensi snapshot ini dengan memilih interval snapshot. Jika terjadi kegagalan node, Anda dapat memulihkan data meskipun failover tidak dapat dilakukan.

    • Persistensi File Hanya Tambah (AOF): gunakan jenis persistensi ini jika Anda ingin memprioritaskan daya tahan data. Persistensi AOF menyimpan data secara tahan lama dengan mencatat setiap perintah tulis ke file log yang disebut file AOF. Jika terjadi kegagalan atau mulai ulang sistem, server akan memutar ulang perintah file AOF secara berurutan untuk memulihkan data Anda.

  • Cadangan: memulihkan instance Memorystore for Valkey Anda ke titik waktu tertentu secara manual. Selain itu, Anda dapat menggunakan cadangan untuk mengekspor dan menganalisis data.

    Pencadangan berguna untuk skenario berikut:

    • Pemulihan dari bencana: gunakan cadangan sebagai bagian dari rencana pemulihan dari bencana. Jika terjadi bencana, Anda dapat memulihkan data ke instance Memorystore for Valkey yang baru.
    • Migrasi data: memigrasikan data antar-instance Memorystore for Valkey yang berbeda. Anda dapat menggabungkan data atau memindahkannya ke region lain. Anda juga dapat memulihkan cadangan dari instance Memorystore for Valkey.
    • Membagikan data: membagikan data antar-tim atau aplikasi yang berbeda. Tindakan ini memungkinkan kolaborasi, analisis data offline, dan pertukaran data.
    • Kepatuhan: buat cadangan data cache secara berkala untuk tujuan kepatuhan.
    • Jadwalkan pencadangan: Selain membuat cadangan sesuai permintaan, Anda dapat mengonfigurasi jadwal pencadangan untuk instance. Akibatnya, Memorystore for Valkey memulai pencadangan berkala untuk instance.
  • Replikasi lintas region: buat instance sekunder dari instance utama untuk membuat instance Anda tersedia untuk operasi baca di berbagai region. Instance sekunder juga menyediakan redundansi untuk skenario pemulihan dari bencana (disaster recovery) jika terjadi pemadaman layanan regional.

    Replikasi lintas-region di Memorystore for Valkey memberikan manfaat berikut:

    • Pemulihan dari bencana: Jika region instance utama tidak tersedia, Anda dapat melepaskan atau melakukan pengalihan ke instance sekunder di region lain untuk melayani permintaan baca dan tulis. Instance sekunder melayani permintaan baca tanpa mengeluarkan perintah pengalihan atau pelepasan.
    • Data yang didistribusikan secara geografis: Mendistribusikan data secara geografis akan mendekatkan data kepada Anda dan mengurangi latensi baca.
    • Load balancing geografis untuk traffic baca: Jika koneksi lambat atau kelebihan beban terjadi di satu region, Anda dapat merutekan traffic ke region lain.

Bagaimana cara mendapatkan performa terbaik untuk instance Anda?

Untuk mengoptimalkan performa instance Memorystore for Valkey, lakukan hal berikut:

  • Ikuti praktik terbaik untuk pengelolaan memori dan penggunaan CPU karena praktik ini menghasilkan performa terbaik untuk instance Anda.
  • Gunakan log audit untuk memantau akses instance Anda. Dengan demikian, Anda dapat menentukan apakah ada masalah yang terkait dengan aktivitas administrator untuk instance (log audit Admin Activity) atau pengguna yang mengakses data instance (log audit Data Access).
  • Gunakan replika baca. Di Memorystore for Valkey, replikasi bersifat asinkron. Oleh karena itu, data di node utama tidak langsung muncul di replika. Jika Anda dapat menangani data yang sedikit usang, gunakan replika baca. Cara ini memberi Anda peningkatan throughput baca dan latensi yang signifikan.
  • Hindari penggunaan perintah Valkey yang menggunakan banyak resource. Penggunaan perintah ini dapat menyebabkan masalah performa berikut:

    • Latensi tinggi dan waktu tunggu klien
    • Tekanan memori yang disebabkan oleh perintah yang meningkatkan penggunaan memori
    • Kehilangan data selama replikasi dan sinkronisasi node karena thread utama Valkey diblokir
    • Health check yang tidak berjalan, kemampuan pengamatan, dan replikasi

    Daripada menggunakan perintah ini, gunakan perintah yang lebih hemat resource. Misalnya, untuk memindai seluruh keyspace, jangan gunakan perintah KEYS. Sebagai gantinya, gunakan SCAN.

    Untuk mengetahui informasi selengkapnya tentang perintah Valkey yang berat dan alternatifnya yang hemat resource, lihat Perintah Valkey yang berat.

  • Jika kebutuhan bisnis Anda memungkinkan Anda menetapkan waktu habis masa berlaku untuk data, sebaiknya lakukan hal tersebut. Menetapkan waktu habis masa berlaku akan mengurangi penggunaan memori.

  • Upgrade versi instance Memorystore untuk Valkey Anda ke versi instance terbaru. Versi software yang lebih baru memiliki peningkatan keandalan dan performa.

  • Ubah nilai parameter maxmemory-policy. Parameter ini menentukan perilaku yang diikuti Valkey saat data instance Anda mencapai batas maxmemory.

    Saat memori instance Anda penuh, dan penulisan baru masuk, Valkey akan mengeluarkan kunci untuk memberi ruang bagi penulisan berdasarkan kebijakan maxmemory instance Anda. Jika nilai parameter
    maxmemory-policy ditetapkan ke noeviction, maka Memorystore untuk Valkey akan menampilkan error saat instance Anda mencapai memori maksimumnya. Namun, Memorystore for Valkey tidak mengganti atau mengeluarkan data. Untuk meningkatkan ketersediaan instance, ubah nilai parameter maxmemory-policy sehingga Memorystore for Valkey dapat mengeluarkan kunci.

    Untuk mengetahui informasi selengkapnya tentang berbagai nilai yang dapat Anda tetapkan untuk parameter maxmemory-policy, lihat Kebijakan maxmemory. Untuk mengetahui informasi selengkapnya tentang cara memperbarui parameter ini, lihat Memperbarui parameter konfigurasi.

  • Sesuaikan instance Memorystore for Valkey Anda agar memiliki rasio hit cache yang Anda inginkan. Hal ini membantu Anda menentukan ukuran database yang tepat sehingga dapat menangani persentase hit yang sesuai.

    Untuk mengoptimalkan instance, lakukan hal berikut:

    1. Gunakan metrik pemantauan total_keyspace_hits_count dan total_keyspace_misses_count untuk menentukan total jumlah pencarian kunci yang berhasil untuk instance dan total jumlah pencarian kunci yang gagal untuk instance.
    2. Bagi jumlah total hit dengan jumlah total hit dan kesalahan
      (yaitu, hit/(hit + kesalahan)). Hasil bagi adalah rasio hit Anda.
    3. Untuk menyesuaikan instance agar mendapatkan rasio hit yang tepat untuk Anda, lakukan penskalaan instance. Anda dapat menskalakan jumlah shard ke dalam atau ke luar, atau menskalakan jenis node ke atas atau ke bawah. Untuk mengetahui informasi selengkapnya, lihat Tentang penskalaan kapasitas instance.

    Meningkatkan rasio hit akan meningkatkan latensi dan throughput untuk sistem Anda. Temukan keseimbangan yang sesuai dengan sasaran performa, penskalaan, dan biaya Anda.

  • Secara default, sebaiknya Anda menjalankan tolok ukur performa terhadap instance Anda untuk menentukan apakah lebih banyak koneksi meningkatkan performa tanpa saturasi koneksi. Titik awal yang direkomendasikan adalah mengonfigurasi klien Anda untuk membuka satu koneksi ke setiap node Valkey.

  • Aktifkan pipelining untuk klien Anda agar klien Anda dapat memproses lebih banyak permintaan dan memprosesnya lebih cepat. Untuk mengonfigurasi pipelining, gunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi yang terkait dengan library ini.

Bagaimana cara mengoptimalkan ketersediaan tinggi untuk instance Anda?

Sebaiknya buat instance multi-zona yang sangat tersedia, bukan instance zona tunggal karena keandalan yang lebih baik yang mereka berikan.

Jika Anda membuat instance dengan ketersediaan tinggi, sebaiknya gunakan metrik /instance/node/replication/offset. Dengan menggunakan metrik ini, Anda dapat memantau selisih replikasi (dalam byte) untuk satu node di instance Anda. Offset replikasi adalah jumlah byte yang belum direplikasi oleh Memorystore untuk Valkey antara node utama dan replika baca.