tl; डॉ
एक निश्चित उत्तर देने के लिए, अधिक परीक्षण आवश्यक लगते हैं। लेकिन परिस्थितिजन्य साक्ष्य से पता चलता है कि लिनक्स अति विशिष्ट रूप से अल्ट्रा लो लेटेंसी समुदाय में व्यावहारिक रूप से उपयोग किया जाने वाला ओएस है, जो नियमित रूप से एमपीपी वर्कलोड को संसाधित करता है। इसका मतलब यह नहीं है कि यह विंडोज के साथ असंभव है, लेकिन विंडोज शायद काफी पीछे रह जाएगा, भले ही यह मैप्पन नंबर हासिल करना संभव हो। लेकिन यह पता लगाने के लिए परीक्षण की आवश्यकता है, और उदाहरण के लिए (सीपीयू) उन नंबरों को प्राप्त करने की लागत का पता लगाने के लिए क्या करना चाहिए।
NB यह एक उत्तर नहीं है जिसे मैं स्वीकार करना चाहता हूं। यह इस सवाल के जवाब में किसी को भी दिलचस्पी देने का इरादा है कि हम कहां खड़े हैं और आगे की जांच कहां करें।
लेन होल्गेट, जिन्हें Google के अनुसार केवल वही लगता है जिसने विंडोज नेटवर्किंग से अधिक प्रदर्शन प्राप्त करने के लिए RIO का परीक्षण किया है (और परिणाम प्रकाशित किया है), बस अपने ब्लॉग पर एक टिप्पणी में स्पष्ट किया कि वह एक एकल IP / पोर्ट कॉम्बो का उपयोग कर रहा था UDP पैकेट भेजने के लिए।
दूसरे शब्दों में, उसके परिणाम लिनक्स पर परीक्षणों में एकल मूल आंकड़ों के लिए कुछ हद तक तुलनीय होने चाहिए (हालांकि वह 8 थ्रेड का उपयोग कर रहा है - जो कि अभी तक अपने कोड की जांच किए बिना, केवल एक यूडीपी पैकेट स्ट्रीम को संभालते समय प्रदर्शन के लिए हानिकारक लगता है और नहीं पैकेट के किसी भी भारी प्रसंस्करण को करना, और वह केवल कुछ धागों का उल्लेख करता है जो वास्तव में उपयोग किए जाते हैं, जो समझ में आता है)। यह कहने के बावजूद कि:
मैं पुराने और नए एपीआई के बीच सापेक्ष प्रदर्शन की तुलना करने के लिए अधिकतम प्रदर्शन प्राप्त करने की कोशिश नहीं कर रहा था और इसलिए मैं अपने परीक्षण में पूरी तरह से नहीं था।
लेकिन "कठिन परिश्रम" के अलावा और अधिक कठिन RIO दुनिया के लिए मानक IOCP के सापेक्ष (रिश्तेदार) आराम क्षेत्र को क्या दे रहा है? कम से कम जहां तक एक एकल यूडीपी पैकेट स्ट्रीम का संबंध है।
मुझे लगता है कि उनका क्या मतलब है - जैसा कि उन्होंने RIO के कई परीक्षणों में विभिन्न डिजाइन दृष्टिकोणों की कोशिश की - यह है कि उन्होंने प्रदर्शन के अंतिम बिट को निचोड़ने के लिए ठीक-ठाक एनआईसी सेटिंग्स को पसंद नहीं किया। जो, उदाहरण के लिए, प्राप्त बफर आकार के मामले में संभावित रूप से यूडीपी प्राप्त प्रदर्शन और पैकेट हानि के आंकड़ों पर एक बड़ा सकारात्मक प्रभाव पड़ सकता है।
हालाँकि समस्या यह है कि अन्य लिनक्स / यूनिक्स / बीएसडी परीक्षणों के साथ अपने परिणामों की सीधे तुलना करने की कोशिश की जा रही है: अधिकांश परीक्षण, "पैकेट प्रति सेकंड" सीमा को धक्का देने की कोशिश करते समय, सबसे छोटे संभव पैकेट / फ्रेम आकार, अर्थात एक ईथरनेट का उपयोग करें 64 बाइट्स का फ्रेम। लेन ने 1024 बाइट पैकेट (-> 1070 बाइट फ्रेम) का परीक्षण किया, जो (विशेष रूप से नो-नागल यूडीपी के लिए) आपको "प्रति सेकंड" बिट्स के उच्चतर अंक प्राप्त कर सकता है, लेकिन छोटे पैकेटों की तुलना में जहाँ तक हो सके pps सीमा को धक्का नहीं दे सकता है। । इसलिए इन आंकड़ों की तुलना करना उचित नहीं होगा।
Windows UDP में मेरी खोज के परिणामों को सारांशित करने से अब तक का प्रदर्शन प्राप्त होता है:
- अल्ट्रा लो लेटेंसी और / या हाई थ्रूपुट एप्लिकेशन को डिवेलप करने की कोशिश करते समय कोई भी वास्तव में विंडोज का उपयोग नहीं करता है, इन दिनों वे लिनक्स का उपयोग कर रहे हैं
- व्यावहारिक रूप से सभी प्रदर्शन परीक्षण और वास्तविक परिणाम (यानी केवल उत्पाद विज्ञापन नहीं) के साथ रिपोर्ट इन दिनों लिनक्स या बीएसडी पर हैं (एक अग्रणी होने और हमें कम से कम एक संदर्भ देने के लिए धन्यवाद!)
- क्या लिनक्स पर UDP (मानक सॉकेट) लिनक्स की तुलना में अधिक तेज / धीमा है? मैं अभी तक नहीं बता सकता, मुझे अपना परीक्षण करना होगा
- उच्च-प्रदर्शन UDP (RIO बनाम नेटमैप) लिनक्स पर विंडोज की तुलना में तेज / धीमा है? लिनक्स आसानी से 900MHz पर सिंगल कोर के साथ पूर्ण 10Gb लाइन की गति को संभालता है, विंडोज, प्रकाशित सबसे अच्छे मामले में 1024 के बड़े यूडीपी पैकेट आकार के लिए 43% या 492kpps तक जाने में सक्षम है, यानी छोटे आकार के लिए bps के आंकड़े संभवतः काफी होंगे हालांकि, पीपीएस आंकड़े संभवतः बढ़ेंगे (जब तक कि बाधा से निपटने या कुछ अन्य कर्नेल स्थान ओवरहेड सीमित कारक नहीं होता)।
जैसे वे क्यों लिनक्स का उपयोग करते हैं, ऐसा इसलिए होना चाहिए क्योंकि विकासशील समाधान जिसमें नेटमैप या आरआईओ जैसे कर्नेल परिवर्तन शामिल होते हैं - प्रदर्शन को सीमाओं तक पहुंचाने के लिए आवश्यक है - विंडोज जैसी बंद प्रणाली के साथ असंभव है, जब तक कि आपकी तनख्वाह रेडमंड से बाहर आने के लिए न हो। या आपके पास Microsoft के साथ कुछ विशेष अनुबंध हैं। यही वजह है कि RIO एक MS उत्पाद है।
अंत में, बस कुछ चरम उदाहरण देने के लिए जो मैंने खोजा था और लिनक्स भूमि पर चल रहा है:
पहले से ही 15 साल पहले, कुछ 1 गीगा एनआईसी पर 800 मेगाहर्ट्ज पेंटियम III सीपीयू, 133 मेगाहर्ट्ज फ्रंट-साइड बस का उपयोग करके 680kpp प्राप्त कर रहे थे । संपादित करें : वे क्लिक का उपयोग कर रहे थे , एक कर्नेल-मोड राउटर जो मानक नेटवर्क स्टैक के बहुत से बायपास करता है, अर्थात वे "धोखा" देते हैं।
2013 में, आर्गन डिज़ाइन प्राप्त करने में कामयाब रहा
ट्रेड्स लेटेंसी को कम से कम 35ns [नैनो सेकंड] तक टिकें
Btw वे भी दावा करते हैं कि
ट्रेडिंग के लिए मौजूदा कंप्यूटिंग कोड का विशाल बहुमत आज x86 प्रोसेसर आर्किटेक्चर पर लिनक्स के लिए लिखा गया है।
और आर्गन एरिस्टा 7124FX स्विच का उपयोग करते हैं , कि (एक FPGA के अलावा) में एक ओएस है
एक मानक लिनक्स कर्नेल के शीर्ष पर बनाया गया है।