Saya tidak mengerti bahwa pada saat pertama kali saya membaca pengantar dari https://www.nginx.com/blog/rate-limiting-nginx/ .
Sekarang saya yakin saya mengerti dan jawaban saya sejauh ini adalah yang terbaik. :)
Misalkan: 10r/s
diatur, kapabilitas maks server adalah mis. 10000r/s
Yang ada 10r/ms
dan hanya ada 1 klien saat ini.
Jadi, inilah perbedaan utama antara 10r/s per IP burst=40 nodelay
dan 10r/s per IP burst=40
.
Ketika https://www.nginx.com/blog/rate-limiting-nginx/ mendokumentasikan ( Saya sangat menyarankan membaca artikel terlebih dahulu (kecuali bagian Pembatas Tingkat Dua Tahap )), perilaku ini memperbaiki satu masalah. Yang mana?:
Dalam contoh kami, paket ke-20 dalam antrian menunggu 2 detik untuk diteruskan, di mana pada saat itu respons terhadapnya mungkin tidak lagi berguna bagi klien.
Periksa draf yang saya buat, 40th
permintaan mendapat tanggapan 1s
sementara yang lain 40th
mendapat tanggapan 4s
.
Ini dapat memanfaatkan kapabilitas server sebaik mungkin: mengirim kembali respons secepat mungkin sambil tetap menjaga x r/s
batasan untuk klien / IP tertentu.
Tetapi ada juga biaya di sini. Biaya akan menjadi:
Jika Anda memiliki banyak klien yang antri di server, misalkan klien A
, B
dan C
.
Tanpa nodelay
, permintaan dilayani dalam urutan yang mirip dengan ABCABCABC
.
Dengan nodelay
, pesanan lebih mungkin terjadi AAABBBCCC
.
Saya ingin meringkas artikel https://www.nginx.com/blog/rate-limiting-nginx/ di sini.
Di atas segalanya, konfigurasi yang paling penting adalah x r/s
.
x r/s
hanya saja, kelebihan permintaan ditolak dengan segera.
x r/s
+ burst
, kelebihan permintaan diantri.
1.
vs 2.
, biayanya adalah bahwa di sisi klien, permintaan yang antri mengambil peluang reuqests nanti yang akan memiliki kesempatan untuk dilayani.
Misalnya, 10r/s burst=20
vs 10r/s
, 11th
permintaan seharusnya ditolak segera di bawah kondisi yang terakhir, tetapi sekarang sedang antri dan akan dilayani. The 11th
permintaan memakan 21th
kesempatan permintaan ini.
x r/s
+ burst
+ nodelay
, sudah dijelaskan.
PS Bagian Pembatasan Tingkat Dua Tahap pada artikel ini sangat membingungkan. Saya tidak mengerti tapi sepertinya tidak masalah.
Sebagai contoh:
Dengan konfigurasi ini, klien yang membuat aliran permintaan berkelanjutan pada 8 r / s mengalami perilaku berikut.
8 r / d? serius? Ada 17 permintaan dalam 3 detik yang ditunjukkan pada gambar, 17/3 = 8?