कई लिनक्स/यूनिक्स प्रोग्रामिंग पुस्तकें और ट्यूटोरियल "Thundering Herd Problem" के बारे में बात करते हैं जो तब होता है जब एक चयन सॉकेट की पठनीयता के लिए एक चुनिंदा() कॉल प्रतीक्षा पर कई धागे या कांटे अवरुद्ध होते हैं। जब कनेक्शन आता है, तो सभी धागे और कांटे जागृत होते हैं लेकिन "स्वीकार()" के लिए एक सफल कॉल के साथ केवल एक "जीतता है"। इस बीच, किसी भी कारण से सभी धागे/कांटे को जागने में बहुत सी सीपीयू समय बर्बाद हो जाता है।क्या लिंडरिंग हर्ड समस्या अब लिनक्स पर मौजूद है?
मैंने project देखा जो लिनक्स कर्नेल में इस समस्या के लिए "ठीक" प्रदान करता है, लेकिन यह एक बहुत पुराना पैच है।
मुझे लगता है कि दो प्रकार हैं; एक जहां प्रत्येक कांटा चयन() और फिर स्वीकार करता है(), और एक जो केवल स्वीकार करता है()।
क्या आधुनिक यूनिक्स/लिनक्स कर्नेल में अभी भी इन दोनों मामलों में केवल "चुनिंदा() स्वीकार करें()" संस्करण में थंडरिंग हर्ड समस्या है?
इस कभी नहीं सुना है, लेकिन सामान का एक बहुत "लिनक्स कर्नेल बुरी तरह से करता है", निश्चित रूप से किसी भी अब सच नहीं है! –
यह एक बहुत ही रोचक सवाल है। 'चयन' में 'अच्छी तरह से' स्वीकार करने के मामले में अच्छी तरह से संभालना वास्तव में कठिन होगा क्योंकि आप गारंटी नहीं दे सकते कि 'चयन' कर रही प्रक्रिया अंततः' स्वीकार करेगी '।मुझे लगता है कि किसी को पता लगाने के लिए एक परीक्षण चलाया जाना चाहिए, और शायद 'एपोल' का भी परीक्षण करें। – Omnifarious