Memastikan bahwa Anda memiliki cukup memori untuk membuat snapshot Redis OSS - Amazon ElastiCache (Redis OSS)

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

Memastikan bahwa Anda memiliki cukup memori untuk membuat snapshot Redis OSS

Redis OSS snapshot dan sinkronisasi dalam versi 2.8.22 dan yang lebih baru

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

Ketika Anda bekerja dengan ElastiCache (Redis OSS), 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 mengeksekusi proses penulisan latar belakang, Anda harus memiliki memori yang cukup tersedia 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 cluster Redis OSS Anda.

Operasi Tulis di Latar Belakang dan Penggunaan Memori

Setiap kali proses penulisan latar belakang disebut, Redis OSS memotong prosesnya (ingat, Redis adalah ulir 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 selengkapnya tentang cara Redis OSS melakukan snapshot, lihat http://redis.io.

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

Menghindari kehabisan memori saat menjalankan operasi tulis di latar belakang

Setiap kali proses penulisan latar belakang seperti BGSAVE atau BGREWRITEAOF dipanggil, untuk menjaga proses agar tidak gagal, Anda harus memiliki lebih banyak memori yang tersedia daripada yang akan dikonsumsi oleh operasi penulisan selama proses. Skenario terburuk adalah bahwa selama operasi penulisan latar belakang setiap catatan Redis OSS diperbarui dan beberapa catatan baru ditambahkan ke cache. Karena itu, kami menyarankan Anda mengatur reserved-memory-percent ke 50 (50 persen) untuk versi Redis OSS sebelum 2.8.22 atau 25 (25 persen) untuk 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 kegunaan lain, seperti proses penulisan latar belakang. Untuk nilai maxmemory berdasarkan jenis instans simpul, lihat Parameter spesifik tipe node Redis OSS.

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

Untuk informasi selengkapnya tentang parameter khusus REDIS di ElastiCache, lihat. Parameter khusus Redis OS

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