Memilih ukuran simpul Anda - Amazon ElastiCache untuk Redis

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

Memilih ukuran simpul Anda

Ukuran simpul yang Anda pilih untuk klaster Anda memengaruhi biaya, kinerja, dan toleransi kesalahan.

Memilih ukuran simpul Anda

Menjawab pertanyaan-pertanyaan berikut dapat membantu Anda menentukan jenis simpul minimum yang Anda butuhkan untuk implementasi Redis Anda:

  • Apakah Anda mengharapkan beban kerja yang terikat throughput dengan beberapa koneksi klien?

    Jika ini masalahnya dan Anda menjalankan Redis versi 5.0.6 atau lebih tinggi, Anda bisa mendapatkan throughput dan latensi yang lebih baik menggunakan Enhanced IO, di mana CPU yang tersedia digunakan untuk membongkar koneksi klien, atas nama mesin Redis. Jika Anda menjalankan Redis versi 7.0.4 atau lebih tinggi, di atas Enhanced IO, Anda akan mendapatkan akselerasi tambahan dengan peningkatan I/O multiplexing, di mana setiap jaringan khusus IO thread pipelines perintah dari beberapa klien ke mesin Redis, mengambil keuntungan dari Redis 'kemampuan untuk secara efisien memproses perintah dalam batch. Anda dapat merujuk ke Throughput yang Lebih Baik dengan postingan blog multiplexing I/O yang disempurnakan dan tipe node yang didukung untuk detail tambahan.

  • Apakah Anda memiliki beban kerja yang mengakses sebagian kecil data mereka secara teratur?

    Jika hal ini terjadi dan Anda berjalan pada Redis mesin versi 6.2 atau yang lebih baru, Anda dapat memanfaatkan data tiering dengan memilih jenis node r6gd. Dengan data tiering, data yang paling jarang digunakan disimpan dalam SSD. Ketika diambil ada biaya latensi kecil, yang diimbangi dengan penghematan biaya. Untuk informasi selengkapnya, lihat Jenjang Data.

    Untuk informasi selengkapnya, lihat Jenis data yang didukung.

  • Berapa banyak memori total yang Anda butuhkan untuk data Anda?

    Untuk mendapatkan estimasi umum, pilih ukuran item yang ingin Anda cache. Kalikan ukuran ini dengan jumlah item yang ingin Anda simpan dalam cache pada waktu yang sama. Untuk mendapatkan estimasi yang wajar dari ukuran item, pertama-tama serialisasi item cache Anda, kemudian hitung karakternya. Kemudian bagi jumlah karakter dengan jumlah serpihan dalam klaster Anda.

    Untuk informasi selengkapnya, lihat Jenis data yang didukung.

  • Apa versi Redis yang Anda jalankan?

    Redis versi sebelum 2.8.22 mengharuskan Anda untuk menyimpan lebih banyak memori untuk failover, snapshot, sinkronisasi, dan promosi replika ke operasi primer. Persyaratan ini muncul karena Anda harus memiliki cukup memori tersedia untuk semua penulisan yang terjadi selama proses.

    Redis versi 2.8.22 dan versi yang lebih baru menggunakan proses simpan tanpa garpu yang membutuhkan lebih sedikit memori yang tersedia dibanding proses sebelumnya.

    Untuk informasi selengkapnya, lihat yang berikut:

  • Seberapa berat menulis aplikasi Anda?

    Menulis aplikasi berat dapat membutuhkan memori yang jauh lebih banyak tersedia, memori yang tidak digunakan oleh data, saat mengambil snapshot atau gagal. Setiap kali proses BGSAVE dilakukan, Anda harus memiliki cukup memori yang tidak digunakan oleh data untuk mengakomodasi semua penulisan yang berlangsung selama proses BGSAVE. Contohnya adalah ketika mengambil snapshot, ketika menyinkronkan klaster primer dengan replika dalam kluster, dan ketika mengaktifkan fitur file tambahkan saja (AOF). Lain lagi ketika mempromosikan replika ke primer (jika Anda mengaktifkan Multi-AZ). Kemungkinan terburuk adalah ketika semua data Anda ditulis ulang selama proses berlangsung. Dalam hal ini, Anda memerlukan ukuran instans simpul dengan memori dua kali lebih banyak yang diperlukan untuk data saja.

    Untuk informasi lebih terperinci, lihat Memastikan bahwa Anda memiliki cukup memori untuk membuat snapshot Redis.

  • Akankah implementasi Anda berupa klaster Redis (mode klaster dinonaktifkan) atau klaster Redis (mode klaster diaktifkan) klaster dengan beberapa serpihan?

    Redis (mode klaster dinonaktifkan) klaster

    Jika Anda mengimplementasikan klaster Redis (mode klaster dinonaktifkan), jenis simpul Anda harus mampu mengakomodasi semua data Anda ditambah overhead yang diperlukan seperti yang dijelaskan dalam bullet sebelumnya.

    Misalnya, Anda mengestimasikan bahwa ukuran total semua item Anda adalah 12 GB. Dalam kasus ini, Anda dapat menggunakan simpul cache.m3.xlarge dengan 13,3 GB memori atau simpul cache.r3.large dengan 13,5 GB memori. Namun, Anda mungkin memerlukan lebih banyak memori untuk operasi BGSAVE. Jika aplikasi Anda berat, dua kalikan persyaratan memori sampai setidaknya 24 GB. Dengan demikian, gunakan cache.m3.2xlarge dengan memori 27,9 GB atau cache.r3.xlarge dengan memori 30,5 GB.

    Redis (mode klaster diaktifkan) dengan beberapa serpihan

    Jika Anda mengimplementasikan klaster Redis (mode klaster diaktifkan) dengan beberapa serpihan, maka jenis simpul harus mampu mengakomodasi byte data. bytes-for-data-and-overhead / number-of-shards

    Misalnya, Anda mengestimasikan bahwa ukuran total semua item Anda adalah 12 GB dan Anda memiliki dua serpihan. Dalam kasus ini, Anda dapat menggunakan simpul cache.m3.large dengan 6,05 GB memori (12 GB/2). Namun, Anda mungkin memerlukan lebih banyak memori untuk operasi BGSAVE. Jika aplikasi Anda berat, dua kalikan persyaratan memori sampai setidaknya 12 GB per serpihan. Dengan demikian, gunakan cache.m3.xlarge dengan 13,3 GB memori atau cache.r3.large dengan 13,5 GB memori.

  • Apakah Anda menggunakan Local Zones?

    Local Zones memungkinkan Anda menempatkan sumber daya seperti klaster ElastiCache di beberapa lokasi yang dekat dengan pengguna Anda. Tetapi ketika Anda memilih ukuran simpul Anda, perhatikan bahwa ukuran simpul yang tersedia saat ini terbatas pada yang berikut ini, terlepas dari persyaratan kapasitas:

    • Generasi saat ini:

      Jenis simpul M5: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      Jenis simpul R5: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      Jenis simpul T3: cache.t3.micro, cache.t3.small, cache.t3.medium

Saat kluster berjalan, Anda dapat memantau penggunaan memori, utilisasi prosesor, hit cache, dan metrik miss cache yang dipublikasikan ke CloudWatch. Anda mungkin memperhatikan bahwa klaster Anda tidak memiliki laju hit yang Anda inginkan atau bahwa kunci dikosongkan terlalu sering. Dalam kasus ini, Anda dapat memilih ukuran simpul yang berbeda dengan CPU dan spesifikasi memori yang lebih besar.

Saat memantau penggunaan CPU, ingat bahwa Redis memiliki utas tunggal. Dengan demikian, kalikan penggunaan CPU yang dilaporkan dengan jumlah inti CPU untuk mengetahui penggunaan yang sebenarnya. Sebagai contoh, CPU empat inti yang melaporkan tingkat penggunaan 20 persen sebenarnya adalah Redis satu inti yang berjalan pada 80 persen utilisasi.