26 पॉइंट द्वारा yunyun0505 2022-09-15 | 5 टिप्पणियां | WhatsApp पर शेयर करें

nginx की कुछ सीमाएँ थीं

  • हर request के लिए केवल एक single worker इस्तेमाल होता था, इसलिए CPU core उपयोग में असंतुलन होता था
  • हर worker के लिए connection pool अलग होने की वजह से TCP और TLS connection reuse rate खराब था -> TTFB बढ़ जाता था
  • nginx चलाने के लिए ज़रूरी कई features वे खुद implement कर रहे थे, लेकिन C में डिज़ाइन किया गया nginx memory-safe नहीं था, इसलिए अनुभवी engineers से भी गलतियाँ हो जाती थीं

Pingora

  • Cloudflare को RFC standard के बाहर के बहुत से requests भी मिलते हैं, लेकिन third-party library (hyper) RFC को सख्ती से follow करती है, इसलिए उसे extend करने में अतिरिक्त मेहनत लगती, इस वजह से उन्होंने इसे खुद बनाया
  • Rust को इसलिए चुना गया क्योंकि यह performance गिराए बिना C के कामों को memory-safe तरीके से replace कर सकता है
  • connection pool को आसानी से share करने के लिए work-stealing scheduling system अपनाया गया, जिससे reuse rate बढ़ा. पहले की तुलना में अब प्रति सेकंड केवल 1/3 स्तर के connections बनते हैं
  • पहले की तुलना में CPU 70% और memory 67% कम इस्तेमाल होती है
  • आगे चलकर इसे open source के रूप में जारी करने की योजना है

5 टिप्पणियां

 
functor 2022-09-27

CPU 70% और मेमोरी 67% वाला हिस्सा वाकई चौंकाने वाला है..

 
ifmkl 2022-09-16

वाह, nginx भी मैंने बहुत अच्छी तरह इस्तेमाल किया है, ये अगर open source के रूप में आए तो मैं इसे तुरंत आज़माना चाहूँगा।

 
forteleaf 2022-09-16

Rust सीखने के बाद भी नौकरी के मौके नहीं मिलते।

 
jungmin1237 2022-09-15

Rust है, यह मुझे पसंद आया।

 
jjpark78 2022-09-15

कम से कम सिस्टम प्रोग्रामिंग में तो Rust धीरे-धीरे बेजोड़ होता जा रहा है..