हम टीसीपी पर .NET Remoting द्वारा उपयोग किए गए थ्रेड की संख्या बढ़ाने की कोशिश कर रहे हैं। हमने ThreadPool.SetMinThreads को बदलने का प्रयास किया है, लेकिन हमारे तनाव परीक्षण से पता चलता है कि .NET Remoting केवल 100 समवर्ती अनुरोधों को संभाल सकता है। (हालांकि यह एक कठिन सीमा नहीं है)। कार्य प्रबंधक में, हम अपनी रिमोटिंग सर्वर प्रक्रिया थ्रेड गिनती 11 से 80 तक बढ़ सकते हैं, जो तब तनाव परीक्षण के बाद 11 तक गिर जाती है। हम एक एएसपी.नेट 4.0 आवेदन चला रहे हैं।टीसीपी पर .NET Remoting द्वारा उपयोग किए गए थ्रेड की संख्या में आप कैसे वृद्धि करते हैं?
उत्तर
SetMinThreads के वापसी मूल्य देखें।
यदि आप ऋणात्मक संख्या या सक्रिय थ्रेड पूल धागे की अधिकतम संख्या (GetMaxThreads का उपयोग करके प्राप्त) से बड़ी संख्या निर्दिष्ट करते हैं, तो SetMinThreads झूठी रिटर्न देता है और न्यूनतम मानों में से कोई भी नहीं बदलता है। (link)
हां हमने पहले से ही यह कोशिश की है और हमें सत्य का वापसी मूल्य मिल रहा है। हमने बाद में GetMinThreads को यह भी पुष्टि करने के लिए कहा है कि हमने न्यूनतम धागे को हमारे द्वारा अपेक्षित रूप से सेट किया है। ऐसा लगता है कि रिमोटिंग वास्तव में थ्रेडपूल का उपयोग अपने धागे को प्रबंधित करने के लिए नहीं करता है ... – meub
समेट करने के लिए। एक रिमोटिंग सर्वर एक विंडोज सेवा और आईआईएस द्वारा एक रिमोटिंग क्लाइंट द्वारा होस्ट किया जाता है। तनाव परीक्षणों से बचने के लिए आप अपाचे बेंच का उपयोग करते हैं जो रिमोटिंग क्लाइंट को कॉल करता है जो रिमोटिंग सर्वर को कॉल करता है। आप देखते हैं कि रिमोटिंग सर्वर द्वारा 100 से अधिक समवर्ती अनुरोधों को संसाधित नहीं किया गया है, हालांकि आप रिमोटिंग सर्वर पर थ्रेड पूल में अधिकतम थ्रेड बढ़ाते हैं।
यदि मैंने जो कुछ कहा वह सच है तो मुझे लगता है कि एक चीज़ यहां गायब है यानी आईआईएस में थ्रेड की एक सीमा भी है जिसका उपयोग अनुरोधों को संभालने के लिए किया जा सकता है। आप अपाचे बेंच से रिमोटिंग क्लाइंट को 1000 अनुरोध भेज सकते हैं, लेकिन उदाहरण के लिए, उनमें से 100 एक ही समय में संभाले जाएंगे। मुझे संदेह है कि यह एक कारण हो सकता है।
आदेश आईआईएस के लिए धागे की संख्या में वृद्धि करने के लिए मैं सुझाव है कि आप करने की कोशिश करने के लिए:
- चेक विन्यास (इस question देखें)।
- आईआईएस पर
SetMinThreads
का उपयोग करने का प्रयास करें।
मेरी तरफ से आखिरी टिप्पणी यह है कि आपको याद रखना होगा कि थ्रेड पूल में धागे की बहुत छोटी संख्या और न ही बहुत अधिक धागे अच्छे हैं। दोनों परिस्थितियां प्रदर्शन को नुकसान पहुंचा सकती हैं।
क्या आप सुनिश्चित हैं बाधा धागा है, न कि नेटवर्क कनेक्शन ..? डिफ़ॉल्ट रूप से, .NET में प्रति दूरस्थ आईपी उपलब्ध पर्याप्त मात्रा में सॉकेट उपलब्ध हैं। यह दूरस्थ बनाने के लिए, http (WCF, वेब सेवा ग्राहकों), आदि पर लागू होता है
आप अपने ऐप config/web.config में system.net/connectionManagement के तहत इस ओवरराइड कर सकते हैं यदि यह आप, क्या देख रहे हैं है जैसे:
<configuration>
...
<system.net>
<connectionManagement>
<add address="*" maxconnection="1000"/>
</connectionManagement>
</system.net>
अधिक है कि config सेटिंग के बारे में जानकारी यहां पाया जा सकता है: https://msdn.microsoft.com/en-us/library/fb6y0fyc%28v=vs.110%29.aspx
- 1. .NET Remoting सिंगलटन मेमोरी लीक, टीसीपी, मार्शल संदर्भ
- 2. जब आप रिमोट ऑब्जेक्ट से .NET Remoting
- 3. कैश किए गए थ्रेड पूल मौजूदा थ्रेड का पुन: उपयोग कैसे करते हैं
- 4. .NET Remoting और HttpContext.Current
- 5. आप knockout.js को देखने में कैसे वृद्धि करते हैं?
- 6. .NET Remoting में "टीसीपी चैनल प्रोटोकॉल उल्लंघन प्रक्षेपण की अपेक्षा" का क्या कारण बनता है?
- 7. इंटेलिजे की "मेक" कॉल करते समय जीडब्ल्यूटी मेवेन प्लगइन द्वारा उपयोग किए गए ढेर आकार को आप कैसे बढ़ाते हैं?
- 8. आप .NET एप्लिकेशन में RequJS का उपयोग कैसे करते हैं?
- 9. आप पैकेज कोड द्वारा प्रदान किए गए हास्केल प्रकार वर्ग उदाहरणों को कैसे ओवरराइड करते हैं?
- 10. .NET Remoting, विधियों को
- 11. आप इवेंट डिस्पैच थ्रेड का उपयोग कैसे करते हैं?
- 12. मैक ओएस एक्स पर, क्या आप शिप किए गए पायथन या स्वयं का उपयोग करते हैं?
- 13. क्या .NET Remoting वास्तव में बहिष्कृत है?
- 14. आप जेनरेट किए गए यूआरएल
- 15. जावास्क्रिप्ट स्ट्रिंग प्रतिस्थापन - आप प्रतिस्थापन स्ट्रिंग में मिलान किए गए चर का उपयोग कैसे करते हैं?
- 16. WHERE क्लॉज में उपयोग किए जाने पर MySQL द्वारा कैश किए गए सबक्वायरीज़ हैं?
- 17. आप एक चुस्त परियोजना में संस्करण संख्या कैसे करते हैं? ।।
- 18. सी #: क्या आप सॉर्ट किए गए सॉर्ट किए गए डिक्शनरी को सॉर्ट करते हैं?
- 19. आप संतुलन टीसीपी यातायात कैसे लोड करते हैं?
- 20. फ़िल्टर किए गए सूची में आइटमों की संख्या AngularJS
- 21. डेटास्टैक्स तैयार किए गए स्टेटमेंट्स कैसे काम करते हैं
- 22. आप बाध्य डेटाग्रिड व्यू में किए गए रोलबैक परिवर्तन कैसे करते हैं?
- 23. सब्लिमे टेक्स्ट में, आप "सभी खोजें" द्वारा लौटाए गए संदर्भ की पंक्तियों की संख्या कैसे बढ़ाते हैं?
- 24. Postgres प्रदर्शन कोर की संख्या में वृद्धि
- 25. .NET में StreamReader.ReadLine() द्वारा पढ़े गए वर्णों की संख्या को सीमित कैसे करें?
- 26. क्या स्विंगवर्कर द्वारा उपयोग किए गए पृष्ठभूमि थ्रेड की प्राथमिकता सेट करने का कोई तरीका है?
- 27. एक प्रक्रिया में लोड किए गए एपडोमेन की अधिकतम संख्या
- 28. आप सी # में यादृच्छिक संख्या कैसे उत्पन्न करते हैं?
- 29. एक्शनकेबल - कनेक्ट किए गए उपयोगकर्ताओं की संख्या कैसे प्रदर्शित करें?
मैं कुछ प्रश्न हैं। 1. आप किस प्रकार की रिमोट ऑब्जेक्ट्स का उपयोग करते हैं? सिंगलटन, सिंगलकॉल, क्लाइंट या सर्वर सक्रिय? 2. मुझे यकीन नहीं है कि मैं आपको सही ढंग से समझता हूं। क्या यह आपके लिए एक समस्या है कि थ्रेड गिनती गिर जाती है। 3. आपकी मशीन में कितने प्रोसेसर/कोर हैं? 4. क्या मैं सही हूं कि आप आईआईएस का उपयोग रिमोटिंग ऑब्जेक्ट्स होस्ट करने के लिए करते हैं? 5. आप इतने सारे धागे क्यों चाहते हैं? क्या आप प्रदर्शन में सुधार करना चाहते हैं? –
सिंगलकॉल। ग्राहक सक्रिय 16 कोर आईआईएस रिमोटिंग क्लाइंट होस्ट करता है। एक विंडोज सेवा रिमोटिंग सर्वर होस्ट करता है। हम प्रदर्शन में सुधार करना चाहते हैं क्योंकि हम देखते हैं कि हम केवल एक ही समय में रिमोटिंग पाइप के माध्यम से 100 अनुरोध निचोड़ सकते हैं (भले ही ये अनुरोध थ्रेड के अलावा कुछ भी नहीं कर रहे हैं। दूसरी तरफ सो जाओ)। – meub
मैं 2 और चीजों के बारे में पूछना चाहता हूं। 1।क्या मैं सही हूं कि आपने रिमोटिंग सर्वर पर 'ThreadPool.SetMinThread' का उपयोग किया था? 2. आपने तनाव परीक्षण कैसे किया? मुझे आश्चर्य है कि सर्वर को अनुरोध आईआईएस पर होस्ट किए गए रिमोटिंग क्लाइंट से भेजा गया था या शायद आईआईएस पर होस्ट नहीं किए गए किसी अन्य एप्लिकेशन से? –