Elastic Remote Direct Memory Access (eRDMA) mempercepat pemrosesan permintaan dengan latensi ultra-rendah. Topik ini menjelaskan cara menerapkan Shared Memory Communication (SMC) dan Redis berdasarkan eRDMA serta menggunakan SMC untuk menguji kemampuan pemrosesan permintaan Redis.
Informasi latar belakang
SMC adalah tumpukan protokol berperforma tinggi yang beroperasi di ruang kernel, menggunakan teknologi shared memory, dan kompatibel dengan lapisan socket. SMC diklasifikasikan menjadi dua variasi berdasarkan teknologi shared memory: Shared Memory Communications - Direct Memory Access (SMC-D), yang menggunakan teknologi internal shared memory (ISM), dan Shared Memory Communications over Remote Direct Memory Access (SMC-R), yang menggunakan teknologi RDMA. Untuk informasi lebih lanjut, lihat Kesesuaian SMC.
Alibaba Cloud Linux 3 menyediakan kemampuan akselerasi SMC-R berdasarkan eRDMA. Untuk menggunakan SMC-R di Alibaba Cloud, Anda harus membuat instance ECS yang mendukung eRDMA.
Persiapan
Buat dua instance yang mendukung eRDMA, pilih opsi Auto-install eRDMA Driver, dan aktifkan fitur eRDMA Interface (ERI) untuk elastic network interfaces (ENIs) utama. Untuk informasi lebih lanjut, lihat Buat instance di tab Custom Launch.
Instance ECS berfungsi sebagai server dan klien dengan konfigurasi berikut:
Tipe Instance: ecs.g8i.8xlarge
Gambar: Alibaba Cloud Linux 3.2104 LTS 64-bit
Jaringan: Instance ECS termasuk dalam grup keamanan yang sama dan dapat berkomunikasi satu sama lain melalui jaringan internal.
Alamat IP privat utama dari ENI utama: 192.168.0.25 untuk instance yang digunakan sebagai server dan 192.168.0.24 untuk instance yang digunakan sebagai klien. Ganti alamat IP sesuai kebutuhan.
CatatanDalam pengujian topik ini, instance ECS yang memiliki fitur ERI diaktifkan untuk ENI utama digunakan. Alamat IP privat utama dari ENI utama pada instance ECS yang digunakan sebagai server adalah 192.168.0.25.
Jika Anda menggunakan instance ECS yang memiliki fitur ERI diaktifkan untuk ENI sekunder untuk pengujian, ganti alamat IP sebelumnya dengan alamat IP privat utama dari ENI sekunder. Untuk informasi lebih lanjut, lihat Langkah 3: Ikat ERIs ke instance ECS.
Langkah 1: Terapkan SMC
Sambungkan ke instance ECS.
Untuk informasi lebih lanjut, lihat Gunakan Workbench untuk terhubung ke instance Linux melalui SSH.
Jalankan perintah berikut pada instance ECS untuk menerapkan modul SMC-R:
modprobe smc && modinfo smcJalankan perintah berikut pada instance ECS untuk menonaktifkan IPv6, memungkinkan koneksi eRDMA dibuat pada ERIs.
PentingPerangkat eRDMA Alibaba Cloud dan SMC tidak mendukung alamat IPv6. Jika aplikasi menggunakan IPv6, SMC akan kembali ke TCP. Untuk informasi lebih lanjut, lihat SMC kembali ke TCP saat alamat IPv6 digunakan.
Mulai dari versi kernel
ANCK 5.10.134-17.3, SMC mendukung alamatIPv4-mapped IPv6.
sysctl net.ipv6.conf.all.disable_ipv6=1Jalankan perintah berikut pada instance ECS untuk mengaktifkan fitur SMC eRDMA agar lalu lintas diprioritaskan melalui eRDMA.
Setelah konversi soket transparan diaktifkan untuk
net namespace, soket TCP baru berikutnya dinet namespacedikonversi menjadi soket SMC dan soket TCP yang ada tidak terpengaruh.sysctl net.smc.tcp2smc=1Jalankan perintah berikut pada instance ECS untuk menginstal smc-tools.
smc-tools adalah toolkit dari IBM yang memungkinkan Anda memantau dan mendiagnosis SMC-R dari berbagai aspek. Ini terdiri dari modul berikut:
smcr: menampilkan statistik sumber daya SMC-R.
smcss: menampilkan informasi tentang soket SMC.
yum install -y smc-toolsSetelah smc-tools diinstal, jalankan perintah
smcss -auntuk memeriksa jalur lalu lintas saat ini.
Langkah 2: Terapkan Redis
Terapkan Redis pada instance ECS.
Sambungkan ke instance ECS.
Untuk informasi lebih lanjut, lihat Gunakan Workbench untuk terhubung ke instance Linux melalui SSH.
Jalankan perintah berikut pada instance ECS untuk menginstal Redis:
sudo yum install -y redisJalankan perintah berikut pada instance ECS yang digunakan sebagai server untuk memulai server Redis:
redis-server --bind 192.168.0.25 --port 6379 --protected-mode no --saveCatatan192.168.0.25 adalah alamat IP privat utama dari ENI utama pada instance yang digunakan sebagai server, dan 6379 adalah nomor port tempat Redis mendengarkan. Ganti alamat IP privat utama dan nomor port dengan nilai aktual.

Sambungkan ke instance ECS yang digunakan sebagai klien dan lakukan uji stres.
Jalankan perintah berikut untuk terhubung ke server Redis:
redis-cli -h 192.168.0.25 -p 6379Lakukan uji stres menggunakan redis-benchmark.
Jalankan perintah berikut untuk mensimulasikan 100 klien mengirim 1.000.000 perintah SET ke server:
redis-benchmark -h 192.168.0.25 -p 6379 -n 1000000 -t set -c 100
Anda juga dapat memulai beberapa proses uji stres untuk melakukan pengujian gabungan setelah Anda mengaktifkan SMC-R. Ulangi langkah-langkah sebelumnya untuk menerapkan klien Redis lain, mulai beberapa proses uji stres pada dua klien Redis, dan kemudian lihat jumlah operasi per detik (OPS) pada server Redis.
Contoh perintah untuk memulai delapan proses uji stres untuk perintah SET:
redis-benchmark -h 192.168.0.25 -p 6379 -n 100000000 -t set --threads 8 -c 100Contoh perintah untuk memulai delapan proses uji stres untuk perintah GET:
redis-benchmark -h 192.168.0.25 -p 6379 -n 1000000 -t get --threads 8 -c 100Contoh perintah untuk melihat jumlah OPS pada server Redis:
redis-cli -h 192.168.0.25 -p 6379 info | grep instantaneous_ops_per_secCatatanBuka jendela koneksi baru dan masukkan perintah di atas.

