कई बार मुझे ऐसी स्थिति का सामना करना पड़ा जब विंडोज़ सर्वर 2016 चलाने वाले होस्ट पर समान कॉन्फ़िगरेशन के वीएम की तुलना में विंडोज़ सर्वर 201 9 पर चलने वाले हाइपर-वी होस्ट पर फ़ाइलों को / से वर्चुअल मशीनों में बहुत धीमी गति से कॉपी किया गया था। कुछ परीक्षणों में, पढ़ा गया /विंडोज सर्वर 2019 पर वीएम को नेटवर्क पर लिखने की गति WS2016 की तुलना में लगभग तीन गुना कम है (एसएमबी, एसएसएच/एससीपी पर नकल का परीक्षण किया गया था)। इस लेख में, मैंने विंडोज सर्वर 2019 (और नवीनतम विंडोज 10 और 11 बिल्ड) पर चलने वाली हाइपर-वी वर्चुअल मशीनों के नेटवर्क प्रदर्शन को बेहतर बनाने के लिए कई अलग-अलग तरीकों का वर्णन करने की कोशिश की।
हाइपर-V vSwitch में सेगमेंट कोलेसिंग (RSC) प्राप्त करें
सबसे पहले, आपको सेगमेंट कोलेसिंग प्राप्त करें (RSC) पर ध्यान देना चाहिए यह फीचर विंडोज सर्वर 2019/2022 (और विंडोज 10 1809+) पर हाइपर-वी में दिखाई दिया। वर्चुअल स्विच लेवल (vSwitch) पर रिसीव सेगमेंट कोलेसिंग का उपयोग किया जाता है। आरएससी कई टीसीपी खंडों को बड़े लोगों में जोड़कर सीपीयू लोड को कम करने और नेटवर्क थ्रूपुट को बढ़ाने की अनुमति देता है। नेटवर्क के प्रदर्शन में सुधार होता है क्योंकि बड़े सेगमेंट कई छोटे सेगमेंट की तुलना में तेज़ी से संसाधित होते हैं।
पिछले हाइपर-वी संस्करणों (विंडोज सर्वर 2016/2012R2) में, एनआईसी स्तर पर केवल हार्डवेयर रिसीव सेगमेंट कोलेसिंग मोड का समर्थन किया गया था।यदि RSC समर्थन सक्षम है, तो इसके परिणामस्वरूप कुछ हार्डवेयर कॉन्फ़िगरेशन में अतिरिक्त नेटवर्क विलंब हो सकता है।
समस्या विंडोज सर्वर 2019 पूर्ण जीयूआई संस्करणों और मुफ्त विंडोज हाइपर-वी सर्वर दोनों में होती है।डिफ़ॉल्ट रूप से, Windows सर्वर 2019 पर सभी बाहरी vSwitches के लिए RSC सक्षम है।
आप कमांड का उपयोग करके जांच सकते हैं कि वर्चुअल स्विच के लिए आरएससी सक्षम है या नहीं:
Get-VMSwitch | Select-Object *RSC*
आप निम्न आदेश का उपयोग करके क्लाइंट नेटवर्क एडेप्टर पर IPv4 ट्रैफ़िक के लिए RSC का उपयोग करना अक्षम कर सकते हैं:
Disable-NetAdapterRsc -Name "Ethernet" -IPv4
जांचें कि क्या आरएससी को अक्षम करने के बाद हाइपर-वी वीएम में कॉपी स्पीड बढ़ गई है। यदि नेटवर्क की गति में सुधार हुआ है, तो आप VM से जुड़े वर्चुअल स्विच पर RSC को अक्षम कर सकते हैं।
आप iperf टूल का उपयोग करके अपने नेटवर्क थ्रूपुट की जांच कर सकते हैं।किसी विशिष्ट वर्चुअल स्विच के लिए सॉफ़्टवेयर RSC को अक्षम करने के लिए, कमांड चलाएँ:
Set-VMSwitch -Name vSwitchName -EnableSoftwareRsc $false
आप फ्लाई पर आरएससी को सक्षम/अक्षम कर सकते हैं, यह किसी भी सक्रिय कनेक्शन को प्रभावित नहीं करेगा।
या आप अपने विंडोज होस्ट पर आरएससी को पूरी तरह से अक्षम कर सकते हैं:
netsh int tcp set global rsc=disabled
नेटवर्क एडेप्टर ड्राइवर में वर्चुअल मशीन कतार (VMQ) मोड
कुछ मामलों में, यदि VMQ (वर्चुअल मशीन कतार) एक भौतिक हाइपर-वी होस्ट के नेटवर्क एडेप्टर ड्राइवर में सक्षम है, इसके परिणामस्वरूप हाइपर-वी वर्चुअल मशीन में खराब नेटवर्क प्रदर्शन हो सकता है। VMQ एक हार्डवेयर विशेषता है और यदि यह आपके हार्डवेयर द्वारा समर्थित नहीं है, लेकिन ड्राइवर में सक्षम है, तो इसका परिणाम पैकेट हानि और नेटवर्क विलंबता में वृद्धि हो सकता है। समस्या ब्रॉडकॉम गीगाबिट नेटवर्क एडेप्टर के लिए विशिष्ट है और सभी हाइपर-वी संस्करणों (विंडोज सर्वर 2012 R2/2016/2019) में होती है।
VMQ को भौतिक नेटवर्क एडेप्टर से वर्चुअल मशीन पर पैकेट को सीधे अग्रेषित करके नेटवर्क प्रदर्शन में सुधार करने के लिए डिज़ाइन किया गया है।आप अपने नेटवर्क एडेप्टर ड्राइवर के गुणों में VMQ को अक्षम कर सकते हैं।
या आप पावरशेल का उपयोग करके VMQ समर्थन और उनकी स्थिति के साथ नेटवर्क एडेप्टर की सूची प्रदर्शित कर सकते हैं:
Get-NetAdapterVmq
किसी विशिष्ट NIC के लिए VMQ को अक्षम करने के लिए, नीचे कमांड चलाएँ (नेटवर्क एडेप्टर कुछ सेकंड के लिए अनुपलब्ध रहेगा):
Set-NetAdapterVmq -Name “NICName” -Enabled $False
VMQ को अक्षम करने के बाद, होस्ट को पुनरारंभ करना और नेटवर्क प्रदर्शन की जांच करना बेहतर है।
सुनिश्चित करें कि विंडोज़ में क्यूओएस बैंडविड्थ सीमा नीतियां अक्षम हैं।Windows Server 2019 पर Hyper-V के लिए TCP सेटिंग्स को ऑप्टिमाइज़ करें
अपने हाइपर-वी होस्ट पर वर्तमान टीसीपी सेटिंग्स को सहेजें और नई सेटिंग्स लागू करें जो विंडोज सर्वर 2019 में टीसीपी सेटिंग्स को लगभग विंडोज सर्वर 2016 के समान बना देंगी।
वर्तमान सेटिंग सहेजें:
Get-NetTCPSetting -SettingName Datacenter,DatacenterCustom,InternetCustom,Internet|select SettingName,CongestionProvider,CwndRestart,ForceWS|Export-csv c:\backup\ws2019_network_stack_settings_nettcp_backup.csv
का चयन करें।
निम्नलिखित सेटिंग्स केवल विंडोज सर्वर 2019 या हाइपर-वी 2019 में लागू करें।
LAN के लिए नई NetTCP सेटिंग लागू करें:
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CwndRestart True
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -ForceWS Disabled
वैन के लिए:
Set-NetTCPSetting -SettingName InternetCustom,Internet -CongestionProvider CTCP
Set-NetTCPSetting -SettingName InternetCustom,Internet -DelayedAckTimeoutMs 50
Set-NetTCPSetting -SettingName InternetCustom,Internet -ForceWS Disabled
TCP स्टैक स्तर पर नेटवर्क RSS और RSC नेटवर्क अनुकूलन विधियों को अक्षम करें:
netsh int tcp show global
netsh int tcp set global RSS=Disabled
netsh int tcp set global RSC=Disabled
या एनआईसी स्तर पर:
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Recv Segment Coalescing (IPv4)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Recv Segment Coalescing (IPv6)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Receive Side Scaling" -DisplayValue "Disabled" –NoRestart
सभी VMs के लिए vRSS अक्षम करें:
Get-VM | Set-VMNetworkAdapter -VrssEnabled $FALSE
एनआईसी पर लार्ज सेंड ऑफलोड (एलएसओ) को अक्षम करें:Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv4)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv6)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Restart-NetAdapter
- Recv सेगमेंट कोलेसिंग (IPv4/IPv6) =अक्षम किया गया
- बड़ा भेजें ऑफलोड V2 (IPv4/IPv6) =अक्षम
ये टीसीपी स्टैक सेटिंग्स विंडोज सर्वर 2019 नेटवर्क प्रोटोकॉल सेटिंग्स को पिछले विंडोज सर्वर संस्करणों के समान बना देंगी।