Pengujian performa

Menguji performa instans Redis bisa menjadi tugas yang rumit. Performa instans Redis dapat bervariasi berdasarkan parameter seperti jumlah klien, ukuran nilai data, dan apakah pipelining sedang digunakan. Juga dapat terjadi tradeoff antara mengoptimalkan throughput atau latensi.

Untungnya, ada beberapa alat untuk membuat tolok ukur Redis lebih mudah. Dua alat paling populer adalah redis-benchmark dan memtier-benchmark. Artikel ini berfokus pada redis-benchmark.

Cara menggunakan utilitas redis-benchmark

  1. Instal server sumber terbuka Redis ke VM klien yang dapat Anda gunakan untuk pengujian. Utilitas redis-benchmark dibangun ke dalam distribusi sumber terbuka Redis. Ikuti dokumentasi Redis untuk petunjuk tentang cara menginstal gambar sumber terbuka.

  2. Komputer virtual klien yang digunakan untuk pengujian harus berada di wilayah yang sama dengan instans Azure Cache for Redis Anda.

  3. Pastikan VM klien yang Anda gunakan memiliki setidaknya komputasi dan bandwidth sebanyak instans cache yang sedang diuji.

  4. Konfigurasikan pengaturan isolasi jaringan dan firewall Anda untuk memastikan bahwa VM klien dapat mengakses instans Azure Cache for Redis Anda.

  5. Jika Anda menggunakan TLS/SSL pada instans cache, Anda perlu menambahkan --tls parameter ke perintah redis-benchmark Atau menggunakan proksi seperti stunnel.

  6. Redis-benchmark menggunakan port 6379 secara default. -p Gunakan parameter untuk mengambil alih pengaturan ini. Anda perlu menggunakan -p, jika Anda menggunakan SSL/TLS (port 6380) atau menggunakan tingkat Enterprise (port 10000).

  7. Jika Anda menggunakan instans Azure Cache for Redis yang menggunakan pengklusteran, Anda perlu menambahkan parameter ke --cluster perintah Andaredis-benchmark. Cache tingkat perusahaan menggunakan kebijakan pengklusteran Perusahaan dapat diperlakukan sebagai cache non-kluster dan tidak memerlukan pengaturan ini.

  8. Luncurkan redis-benchmark dari CLI atau shell VM. Untuk petunjuk tentang cara mengonfigurasi dan menjalankan alat, lihat dokumentasi redis-benchmark dan bagian contoh redis-benchmark.

Rekomendasi tolok ukur

  • Penting untuk tidak hanya menguji performa cache Anda dalam kondisi kondisi stabil. Uji di bawah kondisi failover juga, dan ukur Beban CPU/Server pada cache Anda selama waktu tersebut. Anda dapat memulai kegagalan dengan me-reboot simpul utama. Pengujian dalam kondisi {i>failoverthroughputfailoverFailover

  • Pertimbangkan untuk menggunakan instans Azure Cache for Redis tingkat Enterprise dan Premium. Ukuran cache ini memiliki latensi dan throughput jaringan yang lebih baik karena berjalan pada perangkat keras yang lebih baik.

  • Tingkat Enterprise umumnya memiliki performa terbaik, karena Redis Enterprise memungkinkan proses Redis inti untuk menggunakan beberapa vCPU. Tingkatan berdasarkan sumber terbuka Redis, seperti Standar dan Premium, hanya dapat menggunakan satu vCPU untuk proses Redis per shard.

  • Tolok ukur tingkat Enterprise Flash bisa sulit karena beberapa kunci disimpan di DRAM sementara beberapa disimpan pada disk flash NVMe. Kunci pada tolok ukur DRAM hampir secepat instans tingkat Enterprise, tetapi kunci pada disk flash NVMe lebih lambat. Karena tingkat Enterprise Flash dengan cerdas menempatkan kunci yang paling banyak digunakan ke DRAM, pastikan konfigurasi tolok ukur Anda cocok dengan penggunaan aktual yang Anda harapkan. Pertimbangkan untuk menggunakan -r parameter untuk mengacak kunci mana yang diakses.

  • Menggunakan TLS/SSL mengurangi performa throughput, yang dapat dilihat dengan jelas dalam contoh data tolok ukur dalam tabel berikut.

  • Meskipun server Redis berulir tunggal, peningkatan skala cenderung meningkatkan performa throughput. Proses sistem dapat menggunakan vCPU tambahan alih-alih berbagi vCPU yang digunakan oleh proses Redis. Peningkatan skala sangat membantu di tingkat Enterprise dan Enterprise Flash karena Redis Enterprise tidak terbatas pada satu utas. Untuk informasi selengkapnya, lihat Praktik terbaik tingkat perusahaan.

  • Pada tingkat Premium, peluasan skala, pengklusteran, biasanya direkomendasikan sebelum meningkatkan skala. Pengklusteran memungkinkan server Redis untuk menggunakan lebih banyak vCPU dengan memecah data. Throughput harus meningkat secara kira-kira linier saat menambahkan pecahan dalam kasus ini.

Contoh tolok ukur Redis

Penyiapan pra-pengujian: Siapkan instans cache dengan data yang diperlukan untuk pengujian latensi dan throughput:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t SET -n 10 -d 1024

Untuk menguji latensi: Uji permintaan GET menggunakan payload 1k:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t GET -d 1024 -P 50 -c 4

Untuk menguji throughput: Permintaan GET pipelined dengan payload 1k:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50  -c 50

Untuk menguji throughput cache tingkat Dasar, Standar, atau Premium menggunakan TLS: Permintaan GET pipelined dengan payload 1k:

redis-benchmark -h yourcache.redis.cache.windows.net -p 6380 -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50 -c 50 --tls

Untuk menguji throughput cache Enterprise atau Enterprise Flash tanpa TLS menggunakan Mode Kluster OSS: Permintaan GET Pipelined dengan payload 1k:

redis-benchmark -h yourcache.region.redisenterprise.cache.azure.net -p 10000 -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50 -c 50 --cluster

Contoh data tolok ukur performa

Tabel berikut menunjukkan nilai throughput maksimum yang diamati saat menguji berbagai ukuran cache Standard, Premium, Enterprise, dan Enterprise Flash. Kami menggunakan redis-benchmark dari IaaS Azure VM terhadap titik akhir Azure Cache for Redis. Angka throughput hanya untuk perintah GET. Biasanya, perintah SET memiliki throughput yang lebih rendah. Angka-angka ini dioptimalkan untuk throughput. Throughput dunia nyata dalam kondisi latensi yang dapat diterima mungkin lebih rendah.

Konfigurasi berikut digunakan untuk tolok ukur throughput untuk tingkat Dasar, Standar, dan Premium:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50  -c 50

Perhatian

Nilai-nilai ini tidak dijamin dan tidak ada SLA untuk angka-angka ini. Kami sangat menyarankan Anda untuk melakukan pengujian performa Anda sendiri untuk menentukan ukuran cache yang tepat untuk aplikasi Anda. Angka-angka ini mungkin berubah saat kita memposting hasil yang lebih baru secara berkala.

Penting

Microsoft secara berkala memperbarui VM yang mendasar yang digunakan dalam instans cache. Ini dapat mengubah karakteristik performa dari cache ke cache dan dari wilayah ke wilayah. Contoh nilai tolok ukur pada halaman ini mencerminkan perangkat keras cache generasi yang lebih lama dalam satu wilayah. Anda mungkin melihat hasil yang lebih baik atau berbeda dalam praktik.

Tingkat standar

Instans Ukuran vCPU Bandwidth jaringan yang diharapkan (Mbps) Permintaan GET per detik tanpa SSL (ukuran nilai 1 kB) Permintaan GET per detik dengan SSL (ukuran nilai 1 kB)
C0 250 MB Bersama 100 15.000 7.500
C1 1 GB 1 500 38.000 20.720
C2 2,5 GB 2 500 41.000 37.000
C3 6 GB 4 1000 100.000 90.000
C4 13 GB 2 500 60.000 55.000
C5 26 GB 4 1,000 102.000 93.000
C6 53 GB 8 2.000 126.000 120.000

Tingkat premium

Instans Ukuran vCPU Bandwidth jaringan yang diharapkan (Mbps) Permintaan GET per detik tanpa SSL (ukuran nilai 1 kB) Permintaan GET per detik dengan SSL (ukuran nilai 1 kB)
Hal 1 6 GB 2 1.500 180.000 172.000
P2 13 GB 4 3.000 350.000 341.000
P3 26 GB 4 3.000 350.000 341.000
P4 53 GB 8 6.000 400.000 373.000
P5 120 GB 32 6.000 400.000 373.000

Penting

Instans P5 di wilayah Tiongkok Timur dan Tiongkok Utara menggunakan 20 core, bukan 32 core.

Tingkat Enterprise & Enterprise Flash

Tingkat Enterprise dan Enterprise Flash menawarkan pilihan kebijakan kluster: Enterprise dan OSS. Kebijakan kluster perusahaan adalah konfigurasi yang lebih sederhana yang tidak mengharuskan klien untuk mendukung pengklusteran. Di sisi lain, kebijakan kluster OSS menggunakan protokol kluster Redis untuk mendukung throughput yang lebih tinggi. Sebaiknya gunakan kebijakan kluster OSS dalam banyak kasus. Untuk informasi selengkapnya, lihat Pengklusteran di Enterprise. Tolok ukur untuk kedua kebijakan kluster ditampilkan dalam tabel berikut.

Konfigurasi berikut digunakan untuk tolok ukur throughput untuk tingkat flash Enterprise dan Enterprise:

redis-benchmark -h yourcache.region.redisenterprise.cache.azure.net -p 10000 -a yourAccesskey -t GET -n 10000000 -d 1024 -P 50 -c 50 --threads 32

Catatan

Konfigurasi ini hampir identik dengan yang digunakan untuk membuat tolok ukur tingkat Dasar, Standar, dan Premium. Namun, konfigurasi sebelumnya tidak sepenuhnya menggunakan performa komputasi yang lebih besar dari tingkat Enterprise. Permintaan dan utas tambahan ditambahkan ke konfigurasi ini untuk menunjukkan performa penuh.

Kebijakan Kluster Perusahaan

Instans Ukuran vCPU Bandwidth jaringan yang diharapkan (Mbps) Permintaan GET per detik tanpa SSL (ukuran nilai 1 kB) Permintaan GET per detik dengan SSL (ukuran nilai 1 kB)
E10 12 GB 4 4.000 300.000 207,000
E20 25 GB 4 4.000 680,000 480,000
E50 50 GB 8 8.000 1.200.000 900.000
E100 100 GB 16 10,000 1,700,000 1,650,000
F300 384 GB 8 3.200 500,000 390,000
F700 715 GB 16 6.400 500,000 370,000
F1500 1455 GB 32 12.800 530,000 390,000

Kebijakan Kluster OSS

Instans Ukuran vCPU Bandwidth jaringan yang diharapkan (Mbps) Permintaan GET per detik tanpa SSL (ukuran nilai 1 kB) Permintaan GET per detik dengan SSL (ukuran nilai 1 kB)
E10 12 GB 4 4.000 1.400.000 1\.000.000
E20 25 GB 4 4.000 1.200.000 900.000
E50 50 GB 8 8.000 2,300,000 1,700,000
E100 100 GB 16 10,000 3,000,000 2.500.000
F300 384 GB 8 3.200 1.500.000 1.200.000
F700 715 GB 16 6.400 1.600.000 1.200.000
F1500 1455 GB 32 12.800 1.600.000 1,110,000

Tingkat Flash Perusahaan & Perusahaan - Peluasan Skala

Selain meningkatkan skala dengan berpindah ke ukuran cache yang lebih besar, Anda dapat meningkatkan performa dengan memperluas skala. Di tingkat Enterprise, penskalaan disebut meningkatkan kapasitas instans cache. Instans cache secara default memiliki kapasitas dua--yang berarti node primer dan replika. Instans cache Enterprise dengan kapasitas empat menunjukkan bahwa instans diskalakan oleh faktor dua. Penskalaan keluar menyediakan akses ke lebih banyak memori dan vCPU. Detail tentang berapa banyak vCPU yang digunakan oleh proses Redis inti pada setiap ukuran dan kapasitas cache dapat ditemukan di halaman praktik terbaik tingkat Perusahaan. Peluasan skala paling efektif saat menggunakan kebijakan kluster OSS.

Tabel berikut menunjukkan permintaan GET per detik pada kapasitas yang berbeda, menggunakan SSL dan ukuran nilai 1 kB.

Peluasan skala - Kebijakan kluster perusahaan

Instans Kapasitas 2 Kapasitas 4 Kapasitas 6
E10 200.000 830,000 930,000
E20 480,000 710,000 950,000
E50 900.000 1,110,000 1.200.000
E100 1.600.000 1,120,000 1.200.000
Instans Kapasitas 3 Kapasitas 9
F300 390,000 640,000
F700 370,000 610,000
F1500 390,000 670,000

Peluasan skala - Kebijakan kluster OSS

Instans Kapasitas 2 Kapasitas 4 Kapasitas 6
E10 1\.000.000 1,900,000 2.500.000
E20 900.000 1,700,000 2,300,000
E50 1,700,000 3,000,000 3,900,000
E100 2.500.000 4,400,000 4,900,000
Instans Kapasitas 3 Kapasitas 9
F300 1.200.000 2,600,000
F700 1.200.000 2,600,000
F1500 1,100,000 2,800,000

Langkah berikutnya