VPN जुड़ते ही फ़ाइल कॉपी धीमी पड़ जाती है: SMB मल्टीचैनल
कोई कॉपी अपने सबसे धीमे चैनल का इंतज़ार करती है, इसलिए स्वस्थ बैंडविड्थ परीक्षण कारण छिपा देता है। टनल चैनल की पुष्टि करें, उसे SMB से बाहर निकालें, फिर दोनों रास्ते मापें।
दो Windows मशीनों के बीच फ़ाइल कॉपी तेज़ रहती है जब तक दोनों एक ही VPN में नहीं जुड़ जातीं, और फिर वह ढह जाती है, जबकि उसी जोड़ी पर थ्रूपुट परीक्षण अब भी लगभग लाइन दर के बराबर बताता है। वही अंतर निदान है: लिंक ठीक है और कुछ स्थानांतरण के लिए ही ख़राब रास्ता चुन रहा है। वह कुछ आम तौर पर SMB3 मल्टीचैनल होता है, जो ठीक वही कर रहा है जिसके लिए उसे बनाया गया था। अतिरिक्त चैनल हटा दें और कॉपी भौतिक लिंक पर लौट आती है।
लक्षण अपने सबसे धीमे चैनल का इंतज़ार करता है
मल्टीचैनल एक SMB सत्र को कई TCP कनेक्शन इस्तेमाल करने देता है, क्लाइंट और सर्वर के बीच प्रत्येक उपयुक्त पता जोड़ी के लिए एक। जब दोनों मशीनें LAN पर और उसी टनल में हों, तो Windows LAN पतों को टनल पतों के साथ जोड़ सकता है और दोनों जोड़ियों को उपयोगी मान सकता है। अंत में सत्र में भौतिक लिंक की ज़रूरत से अधिक चैनल रह जाते हैं, और उनमें से एक कहीं अधिक धीमा होता है।
यह विफल नहीं होता। यह इंतज़ार करता है, क्योंकि सत्र अपने सबसे धीमे चैनल से तेज़ पूरा नहीं हो सकता।
इसीलिए बैंडविड्थ परीक्षण स्वस्थ दिख सकता है जबकि कॉपी रेंगती है: एकल-स्ट्रीम माप एक रास्ता चुन सकता है, जबकि स्थानांतरण दो पर बँटा हुआ था। कोई भी एडाप्टर सेटिंग बदलने से पहले चैनल सूची पढ़ें, और उसे तब पढ़ें जब कॉपी अब भी चल रही हो, क्योंकि निष्क्रिय सत्र कुछ नहीं दिखाता। आप जो लिखें उसमें हर चैनल के पीछे का इंटरफ़ेस नाम होना चाहिए, केवल यह नहीं कि नतीजा कितना धीमा लगा।
पुष्टि करें कि दूसरा चैनल मौजूद है
दो cmdlet इस प्रश्न का सीधा उत्तर देते हैं। कनेक्शन सूची उपयोग में आने वाले चैनल दिखाती है, और सत्र सारांश स्वयं कनेक्शन दिखाता है। धीमी कॉपी के दौरान दोनों चलाएँ।
Get-SmbMultichannelConnection
Get-SmbConnectionएक ही सर्वर के लिए चयनित के रूप में चिह्नित एक से अधिक पंक्तियाँ खोजें, फिर संदिग्ध पंक्ति में क्लाइंट पता हल करें। यदि वह पता टनल एडाप्टर का है, तो दूसरा रास्ता वास्तविक और पुष्ट है। यदि हर पंक्ति भौतिक इंटरफ़ेस की है, तो मल्टीचैनल आपकी समस्या नहीं है और कॉपी किसी असंबंधित कारण से धीमी है। यह पुष्टि पहले करें, क्योंकि मरम्मत इतनी बाधाकारी है कि एक मिनट के सबूत की हक़दार है।
Get-NetIPAddress -IPAddress 10.20.30.44यहाँ दिए पते प्लेसहोल्डर हैं। उन्हें अपने ही आउटपुट के अनुसार बदलें, क्योंकि ब्लॉग से पता कॉपी करना ही वह तरीका है जिससे एक चलने वाला आदेश उलझाने वाला त्रुटि संदेश बन जाता है।
टनल को SMB से बाहर निकालें और फिर दोबारा मापें
मल्टीचैनल बंद करना निदान की पुष्टि का सबसे तेज़ तरीका है, और यह उलटा जा सकता है। क्लाइंट सेटिंग कॉपी करने वाली मशीन पर और सर्वर सेटिंग शेयर होस्ट करने वाली मशीन पर लगाएँ, क्योंकि कोई भी एक पक्ष अकेले अतिरिक्त चैनल जीवित रख सकता है। बदलाव नए कनेक्शन पर लागू होता है, मौजूदा पर नहीं, इसलिए खुला सत्र इसे झेल जाता है। कुछ भी मापने से पहले दोनों मशीनें रीबूट करें, या कम से कम शेयर के सभी हैंडल बंद करें।
Set-SmbClientConfiguration -EnableMultiChannel $false -Force
Set-SmbServerConfiguration -EnableMultiChannel $false -Forceनई स्थिति की पुष्टि करें, फिर देखें कि सर्वर अब क्लाइंट को क्या घोषित करता है।
Get-SmbClientConfiguration | Select-Object EnableMultiChannel
Get-SmbServerNetworkInterface | Format-List *टनल इंटरफ़ेस को उस घोषित सूची से बाहर हो जाना चाहिए। यदि नहीं होता, तो सेटिंग ग़लत छोर पर पहुँची या पुराना सत्र अब भी खुला है। यदि फ़ाइल साझा करने को टनल का उपयोग बिल्कुल नहीं करना चाहिए, तो उस एडाप्टर से सर्वर घटक अनबाइंड करें, जिससे टनल हर अन्य सेवा के लिए उपयोगी रहता है।
Get-NetAdapterBinding -Name "OpenVPN Data Channel Offload"
Disable-NetAdapterBinding -Name "OpenVPN Data Channel Offload" -ComponentID ms_serverचैनल मिटाने का दिखावा किए बिना LAN रास्ते को प्राथमिकता दें
इंटरफ़ेस मीट्रिक Windows को बताता है कि नए कनेक्शन के लिए कौन-सा रास्ता पसंद करना है। यह उस चैनल को नहीं हटाता जिसे मल्टीचैनल पहले ही खोलने का फ़ैसला कर चुका है। टनल की मीट्रिक बढ़ाना फिर भी उचित है, क्योंकि यह असंबंधित ट्रैफ़िक को धीमे रास्ते से दूर रखता है और पसंदीदा मार्ग को अनुमानित बनाता है, पर यह धक्का है, फ़िल्टर नहीं।
Get-NetIPInterface | Sort-Object InterfaceMetric | Select-Object InterfaceAlias, InterfaceMetric
Set-NetIPInterface -InterfaceAlias "OpenVPN Data Channel Offload" -AutomaticMetric Disabled -InterfaceMetric 1000एलियास को टाइप करने के बजाय उस आउटपुट से कॉपी करें, क्योंकि कुछ इंस्टॉल एडाप्टर का नाम स्थानीयकृत कर देते हैं और अंग्रेज़ी स्ट्रिंग मेल नहीं खाएगी।
फिर दोनों संख्याएँ दोबारा मापें: फ़ाइल कॉपी और उसी जोड़ी पर थ्रूपुट परीक्षण। यदि थ्रूपुट परीक्षण कभी धीमा नहीं था और कॉपी सुधर जाती है, तो मल्टीचैनल ही कारण था और आप रुक सकते हैं। यदि दोनों ढह जाएँ, तो टनल ही अड़चन है और मल्टीचैनल ने उसे केवल बढ़ाया। यदि दोनों रास्ते सही दिखते हों और कॉपी धीमी रहे, तो बाक़ी समस्या शेयर, स्टोरेज या किसी फ़िल्टर ड्राइवर में बसती है, जो एक अलग जाँच है।