Memilih ukuran simpul Anda - Amazon ElastiCache (Redis) OSS

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, performa, dan toleransi kesalahan.

Memilih ukuran simpul Anda

Untuk informasi tentang manfaat prosesor Graviton, lihat Prosesor AWS Graviton.

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

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

    Jika ini masalahnya dan Anda menjalankan Redis OSS versi 5.0.6 atau lebih tinggi, Anda bisa mendapatkan throughput dan latensi yang lebih baik dengan fitur I/O kami yang disempurnakan, di mana CPU yang tersedia digunakan untuk membongkar koneksi klien, atas nama mesin Redis OSS. Jika Anda menjalankan Redis OSS versi 7.0.4 atau lebih tinggi, di atas I/O yang disempurnakan, Anda akan mendapatkan akselerasi tambahan dengan multiplexing I/O yang disempurnakan, di mana setiap jaringan pipa thread IO khusus memerintahkan dari beberapa klien ke mesin Redis OSS, memanfaatkan kemampuan Redis OSS untuk memproses perintah secara efisien dalam batch. Dalam ElastiCache (Redis OSS) v7.1 dan di atasnya, kami memperluas fungsionalitas utas I/O yang disempurnakan untuk juga menangani logika lapisan presentasi. Dengan lapisan presentasi, yang kami maksud adalah bahwa utas I/O yang Ditingkatkan sekarang tidak hanya membaca input klien, tetapi juga mengurai input ke dalam format perintah biner Redis OSS, yang kemudian diteruskan ke utas utama untuk dieksekusi, memberikan peningkatan kinerja. Lihat postingan blog dan halaman versi yang didukung untuk detail tambahan.

  • Apakah Anda memiliki beban kerja yang mengakses sebagian kecil dari datanya secara berkala?

    Jika ini masalahnya dan Anda menjalankan mesin Redis OSS versi 6.2 atau yang lebih baru, Anda dapat memanfaatkan tiering data dengan memilih tipe node r6gd. Dengan tingkatan data, data yang sudah lama tidak digunakan akan disimpan di SSD. Ketika data ini diambil, ada sedikit latensi, tetapi diimbangi dengan penghematan biaya. Untuk informasi selengkapnya, lihat Tingkatan data.

    Untuk informasi selengkapnya, lihat Jenis simpul yang didukung.

  • Berapa banyak memori total yang dibutuhkan untuk data Anda?

    Untuk mendapatkan estimasi umum, cari tahu ukuran item yang ingin Anda simpan dalam 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 serialisasikan item cache Anda, kemudian hitung karakternya. Kemudian bagi jumlah karakter dengan jumlah serpihan dalam klaster Anda.

    Untuk informasi selengkapnya, lihat Jenis simpul yang didukung.

  • Versi Redis OSS apa yang Anda jalankan?

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

    Redis OSS versi 2.8.22 dan yang lebih baru menggunakan proses penyimpanan tanpa garpu yang membutuhkan lebih sedikit memori yang tersedia daripada proses sebelumnya.

    Untuk informasi selengkapnya, lihat berikut ini:

  • Seberapa berat operasi tulis aplikasi Anda?

    Aplikasi dengan operasi tulis berat dapat membutuhkan ketersediaan memori yang jauh lebih banyak, memori yang tidak digunakan oleh data, saat mengambil snapshot atau failover. Setiap kali proses BGSAVE dilakukan, Anda harus memiliki cukup memori yang tidak digunakan oleh data untuk mengakomodasi semua operasi tulis yang berlangsung selama proses BGSAVE. Contohnya adalah ketika mengambil snapshot, ketika menyinkronkan klaster primer dengan replika dalam klaster, dan ketika mengaktifkan fitur append-only file (AOF). Contoh lainnya adalah saat mempromosikan replika ke primer (jika Anda memiliki Multi-AZ yang aktif). Kemungkinan terburuknya adalah ketika semua data Anda ditulis ulang selama proses berlangsung. Dalam hal ini, Anda memerlukan ukuran instans simpul dengan memori dua kali lebih banyak dari yang diperlukan untuk data saja.

    Untuk informasi selengkapnya, lihat Memastikan bahwa Anda memiliki cukup memori untuk membuat snapshot Redis OSS.

  • Apakah implementasi Anda akan menjadi cluster Redis OSS (mode cluster dinonaktifkan) mandiri atau cluster Redis OSS (mode cluster enabled) dengan beberapa pecahan?

    Redis OSS (mode cluster dinonaktifkan) cluster

    Jika Anda menerapkan cluster Redis OSS (mode cluster disabled), tipe node Anda harus dapat mengakomodasi semua data Anda ditambah overhead yang diperlukan seperti yang dijelaskan dalam bullet sebelumnya.

    Sebagai contoh, misalnya Anda memperkirakan bahwa total ukuran semua item Anda adalah 12 GB. Dalam kasus ini, Anda dapat menggunakan simpul cache.m3.xlarge dengan memori 13,3 GB atau simpul cache.r3.large dengan memori 13,5 GB. Namun, Anda mungkin memerlukan lebih banyak memori untuk operasi BGSAVE. Jika aplikasi Anda memiliki operasi tulis berat, gandakan persyaratan memori ke setidaknya 24 GB. Dengan demikian, gunakan cache.m3.2xlarge dengan memori 27,9 GB atau cache.r3.xlarge dengan memori 30,5 GB.

    Redis OSS (mode cluster diaktifkan) dengan beberapa pecahan

    Jika Anda menerapkan cluster Redis OSS (mode cluster enabled) dengan beberapa pecahan, maka tipe node harus dapat mengakomodasi bytes-for-data-and-overhead / number-of-shards byte data.

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

  • Apakah Anda menggunakan Zona Lokal?

    Local Zones memungkinkan Anda menempatkan sumber daya seperti ElastiCache klaster di beberapa lokasi yang dekat dengan pengguna Anda. Namun, ketika Anda memilih ukuran simpul Anda, perhatikan bahwa ukuran simpul yang tersedia saat ini terbatas seperti yang tertera 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 klaster Anda berjalan, Anda dapat memantau penggunaan memori, pemanfaatan prosesor, klik cache, dan metrik cache misses yang dipublikasikan. CloudWatch Anda mungkin memperhatikan bahwa klaster Anda tidak memiliki laju hit yang Anda inginkan atau bahwa kunci terlalu sering dikosongkan. Dalam kasus ini, Anda dapat memilih ukuran simpul yang berbeda dengan spesifikasi CPU dan memori yang lebih besar.

Saat memantau penggunaan CPU, ingat Redis OSS adalah single-threaded. Dengan demikian, kalikan penggunaan CPU yang dilaporkan dengan jumlah inti CPU untuk mengetahui penggunaan yang sebenarnya. Misalnya, CPU empat inti yang melaporkan tingkat penggunaan 20 persen sebenarnya adalah satu inti Redis OSS berjalan pada pemanfaatan 80 persen.