मुझे समझ नहीं आया कि पहली बार जब मैं https://www.nginx.com/blog/rate-limiting-nginx/ से परिचय पढ़ रहा था ।
अब मुझे यकीन है कि मैं समझ गया हूं और मेरा जवाब अब तक का सबसे अच्छा है। :)
मान लीजिए: 10r/s
सेट किया गया है, सर्वर की अधिकतम क्षमता उदा है 10000r/s
जो कि है 10r/ms
और इस समय केवल 1 क्लाइंट है।
तो यहाँ 10r/s per IP burst=40 nodelay
और के बीच मुख्य अंतर है 10r/s per IP burst=40
।
जैसा कि https://www.nginx.com/blog/rate-limiting-nginx/ डॉक्यूमेंटेड है ( मैं पहले लेख को पढ़ने की जोरदार सलाह देता हूं ( टू-स्टेज रेट लिमिटिंग सेक्शन को छोड़कर ), यह व्यवहार एक समस्या को ठीक करता है। कौनसा?:
हमारे उदाहरण में, कतार में 20 वें पैकेट को आगे बढ़ने के लिए 2 सेकंड इंतजार करना पड़ता है, जिस पर एक प्रतिक्रिया यह क्लाइंट के लिए उपयोगी नहीं हो सकती है।
मेरे द्वारा किए गए मसौदे की जांच करें, 40th
अनुरोध पर प्रतिक्रिया मिलती है 1s
जबकि दूसरे 40th
पर प्रतिक्रिया मिलती है 4s
।
यह सर्वर की क्षमता का सबसे अच्छा उपयोग कर सकता है: x r/s
किसी ग्राहक / आईपी के लिए बाधा को दूर रखते हुए यथासंभव त्वरित प्रतिक्रिया भेजता है ।
लेकिन यहां भी लागत है। लागत होगी:
आप कई ग्राहकों सर्वर आइए कहते हैं ग्राहक पर कतार है, तो A
, B
और C
।
बिना nodelay
, अनुरोध के समान आदेश में परोसा जाता है ABCABCABC
।
के साथ nodelay
, आदेश होने की अधिक संभावना है AAABBBCCC
।
मैं यहां https://www.nginx.com/blog/rate-limiting-nginx/ लेख को समेटना चाहूंगा ।
इन सबसे ऊपर, सबसे महत्वपूर्ण विन्यास है x r/s
।
x r/s
केवल, अतिरिक्त अनुरोध तुरंत अस्वीकार कर दिए जाते हैं।
x r/s
+ burst
, अतिरिक्त अनुरोध कतारबद्ध हैं।
1.
बनाम 2.
, लागत यह है कि ग्राहक की ओर से, कतारबद्ध अनुरोध बाद के पुनर्खरीद की संभावना को बढ़ाते हैं जो कि सेवा होने का मौका होगा।
उदाहरण के लिए, 10r/s burst=20
बनाम 10r/s
, बाद के 11th
अनुरोध के तहत अनुरोध को तुरंत अस्वीकार कर दिया जाना चाहिए, लेकिन अब यह कतारबद्ध है और इसे परोसा जाएगा। 11th
अनुरोध लेता 21th
अनुरोध के मौका।
x r/s
+ burst
+ nodelay
, पहले से ही समझाया।
पुनश्च लेख की दो-चरण दर सीमा अनुभाग बहुत भ्रामक है। मुझे समझ में नहीं आता है, लेकिन यह मामला नहीं लगता है।
उदाहरण के लिए:
इस कॉन्फ़िगरेशन के साथ, एक क्लाइंट जो 8 r / s पर अनुरोधों की एक सतत स्ट्रीम बनाता है, वह निम्न व्यवहार का अनुभव करता है।
8 आर / एस? गंभीरता से? छवि में दिखाए गए 3 सेकंड के भीतर 17, 17/3 = 8 में 17 अनुरोध हैं?