Memastikan Anda memiliki cukup memori untuk membuat snapshot Valkey atau Redis OSS - Amazon ElastiCache

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memastikan Anda memiliki cukup memori untuk membuat snapshot Valkey atau Redis OSS

Ssnapshot dan sinkronisasi di Valkey 7.2 dan yang lebih baru, dan Redis versi 2.8.22 dan yang lebih baru OSS

Valkey memiliki dukungan default untuk snapshot dan sinkronisasi. Redis OSS 2.8.22 memperkenalkan proses penyimpanan tanpa garpu yang memungkinkan Anda mengalokasikan lebih banyak memori untuk penggunaan aplikasi Anda tanpa menimbulkan peningkatan penggunaan swap selama sinkronisasi dan penyimpanan. Untuk informasi selengkapnya, lihat Cara penerapan sinkronisasi dan pencadangan.

Redis OSS snapshot dan sinkronisasi sebelum versi 2.8.22

Saat Anda bekerja dengan ElastiCache (RedisOSS), Redis OSS memanggil perintah penulisan latar belakang dalam sejumlah kasus:

  • Saat membuat snapshot untuk cadangan.

  • Saat menyinkronkan replika dengan primer dalam grup replikasi.

  • Saat mengaktifkan fitur file append-only (AOF) untuk Redis. OSS

  • Saat mempromosikan replika menjadi primer (yang menyebabkan sinkronisasi primer/replika).

Setiap kali Redis OSS menjalankan proses penulisan latar belakang, Anda harus memiliki memori yang cukup untuk mengakomodasi overhead proses. Jika memori yang tersedia tidak cukup, proses akan gagal. Karena itu, penting untuk memilih jenis instance node yang memiliki memori yang cukup saat membuat OSS cluster Redis Anda.

Proses Penulisan Latar Belakang dan Penggunaan Memori dengan Valkey dan Redis OSS

Setiap kali proses penulisan latar belakang disebut, Valkey dan Redis memotong prosesnya OSS (ingat, mesin ini berulir tunggal). Satu garpu menyimpan data Anda ke disk dalam file snapshot Redis OSS .rdb. Fork lainnya melayani semua operasi baca dan tulis. Untuk memastikan bahwa snapshot Anda adalah point-in-time snapshot, semua pembaruan dan penambahan data ditulis ke area memori yang tersedia terpisah dari area data.

Asalkan Anda memiliki cukup memori yang tersedia untuk mencatat semua operasi tulis saat data sedang dipersistensi ke disk, Anda tidak akan mengalami masalah kekurangan memori. Anda mungkin mengalami masalah kekurangan memori jika salah satu hal berikut berlaku:

  • Aplikasi Anda melakukan banyak operasi tulis, sehingga membutuhkan sejumlah besar memori yang tersedia untuk menerima data yang baru atau diperbarui.

  • Anda memiliki sedikit memori yang tersedia untuk menulis data yang baru atau diperbarui.

  • Anda memiliki set data besar yang membutuhkan waktu lama untuk dipersistensi ke disk, sehingga memerlukan sejumlah besar operasi tulis.

Diagram berikut menggambarkan penggunaan memori saat menjalankan operasi tulis di latar belakang.

Gambar: Diagram penggunaan memori selama operasi tulis di latar belakang.

Untuk informasi tentang dampak melakukan pencadangan pada performa, lihat Dampak performa pencadangan klaster yang dirancang sendiri.

Untuk informasi lebih lanjut tentang cara Valkey dan Redis OSS melakukan snapshot, lihat http://valkey.io.

Untuk informasi selengkapnya tentang wilayah dan Zona Ketersediaan, lihat Memilih wilayah dan zona ketersediaan untuk ElastiCache.

Menghindari kehabisan memori saat menjalankan operasi tulis di latar belakang

Setiap kali proses penulisan latar belakang seperti BGSAVE atau BGREWRITEAOF dipanggil, untuk menjaga proses dari kegagalan, Anda harus memiliki lebih banyak memori yang tersedia daripada yang akan dikonsumsi oleh operasi tulis selama proses. Skenario terburuk adalah bahwa selama operasi penulisan latar belakang setiap catatan diperbarui dan beberapa catatan baru ditambahkan ke cache. Karena itu, kami menyarankan Anda mengatur reserved-memory-percent ke 50 (50 persen) untuk OSS versi Redis sebelum 2.8.22, atau 25 (25 persen) untuk Valkey dan semua Redis OSS versi 2.8.22 dan yang lebih baru.

Nilai maxmemory menunjukkan memori yang tersedia untuk overhead data dan operasional. Karena Anda tidak dapat mengubah parameter reserved-memory dalam grup parameter default, Anda harus membuat grup parameter kustom untuk klaster. Nilai default untuk reserved-memory adalah 0, yang memungkinkan Redis OSS untuk mengkonsumsi semua maxmemory dengan data, berpotensi meninggalkan terlalu sedikit memori untuk penggunaan lain, seperti proses penulisan latar belakang. Untuk nilai maxmemory berdasarkan jenis instans simpul, lihat Parameter spesifik tipe OSS node Redis.

Anda juga dapat menggunakan reserved-memory parameter untuk mengurangi jumlah memori yang digunakan pada kotak.

Untuk informasi lebih lanjut tentang parameter khusus Valkey dan REDIS di ElastiCache, lihat. Parameter Valkey dan Redis OSS

Untuk informasi tentang cara membuat dan mengubah grup parameter DB, lihat Membuat grup ElastiCache parameter dan Memodifikasi grup ElastiCache parameter.