আমি বেশ কয়েকবার এমন পরিস্থিতির মুখোমুখি হয়েছি যখন উইন্ডোজ সার্ভার 2016-এ চলমান একটি হোস্টে একই কনফিগারেশনের VM-এর তুলনায় হাইপার-ভি হোস্টে ভার্চুয়াল মেশিন থেকে/এ ফাইলগুলি অনেক ধীরগতিতে অনুলিপি করা হয়েছিল। কিছু পরীক্ষায়, /WS2016-এর তুলনায় Windows Server 2019-এ VM-এ নেটওয়ার্কের মাধ্যমে লেখার গতি প্রায় তিনগুণ কম (SMB, SSH/SCP-এর উপর কপি করা পরীক্ষা করা হয়েছিল)। এই নিবন্ধে, আমি উইন্ডোজ সার্ভার 2019 (এবং সর্বশেষ উইন্ডোজ 10 এবং 11 বিল্ড) এ চলমান হাইপার-ভি ভার্চুয়াল মেশিনগুলির নেটওয়ার্ক কর্মক্ষমতা উন্নত করার জন্য বিভিন্ন পদ্ধতি বর্ণনা করার চেষ্টা করেছি।
Hyper-V vSwitch-এ সেগমেন্ট কোলেসিং (RSC) পান
প্রথমত, আপনার মনে রাখা উচিত রিসিভ সেগমেন্ট কোলেসিং (RSC) উইন্ডোজ সার্ভার 2019/2022 (এবং Windows 10 1809+) এ হাইপার-ভি-তে উপস্থিত হওয়া বৈশিষ্ট্য। ভার্চুয়াল সুইচ লেভেলে (vSwitch) রিসিভ সেগমেন্ট কোলেসিং ব্যবহার করা হয়। RSC সিপিইউ লোড কমাতে এবং একাধিক টিসিপি সেগমেন্টকে বড় অংশে একত্রিত করে নেটওয়ার্ক থ্রুপুট বাড়াতে দেয়। নেটওয়ার্ক পারফরম্যান্স উন্নত হয়েছে কারণ অনেক ছোট অংশের তুলনায় বড় অংশগুলি দ্রুত প্রক্রিয়া করা হয়৷
পূর্ববর্তী হাইপার-ভি সংস্করণে (Windows Server 2016/2012R2), NIC স্তরে শুধুমাত্র হার্ডওয়্যার রিসিভ সেগমেন্ট কোলেসিং মোড সমর্থিত ছিল।যদি RSC সমর্থন সক্ষম করা থাকে, তবে এর ফলে কিছু হার্ডওয়্যার কনফিগারেশনে অতিরিক্ত নেটওয়ার্ক বিলম্ব হতে পারে।
সমস্যাটি উইন্ডোজ সার্ভার 2019 সম্পূর্ণ GUI সংস্করণ এবং বিনামূল্যের উইন্ডোজ হাইপার-ভি সার্ভার উভয় ক্ষেত্রেই ঘটে।ডিফল্টরূপে, Windows সার্ভার 2019-এ সমস্ত বাহ্যিক vSwitches-এর জন্য RSC সক্ষম করা আছে।
আপনি কমান্ডটি ব্যবহার করে ভার্চুয়াল সুইচের জন্য RSC সক্ষম কিনা তা পরীক্ষা করতে পারেন:
Get-VMSwitch | অবজেক্ট নির্বাচন করুন *RSC*
আপনি নিম্নলিখিত কমান্ড ব্যবহার করে ক্লায়েন্ট নেটওয়ার্ক অ্যাডাপ্টারে IPv4 ট্র্যাফিকের জন্য RSC ব্যবহার অক্ষম করতে পারেন:
অক্ষম-NetAdapterRsc -নাম "ইথারনেট" -IPv4
RSC নিষ্ক্রিয় করার পরে হাইপার-ভি VM-এ কপির গতি বেড়েছে কিনা তা পরীক্ষা করুন। নেটওয়ার্কের গতি উন্নত হলে, আপনি VM সংযুক্ত ভার্চুয়াল সুইচটিতে RSC অক্ষম করতে পারেন।
আপনি iperf টুল ব্যবহার করে আপনার নেটওয়ার্ক থ্রুপুট পরীক্ষা করতে পারেন।একটি নির্দিষ্ট ভার্চুয়াল সুইচের জন্য সফ্টওয়্যার RSC অক্ষম করতে, কমান্ডটি চালান:
Set-VMSwitch -Name vSwitchName -EnableSoftwareRsc $false
আপনি ফ্লাইতে RSC সক্রিয়/অক্ষম করতে পারেন, এটি কোনো সক্রিয় সংযোগকে প্রভাবিত করবে না।
অথবা আপনি আপনার উইন্ডোজ হোস্টে RSC সম্পূর্ণরূপে নিষ্ক্রিয় করতে পারেন:
netsh int tcp সেট গ্লোবাল rsc=disabled
নেটওয়ার্ক অ্যাডাপ্টার ড্রাইভারে ভার্চুয়াল মেশিন কিউ (VMQ) মোড
কিছু ক্ষেত্রে, যদি VMQ (ভার্চুয়াল মেশিন সারি) একটি ফিজিক্যাল হাইপার-V হোস্টের নেটওয়ার্ক অ্যাডাপ্টার ড্রাইভারে সক্রিয় করা হয়েছে, এটি হাইপার-ভি ভার্চুয়াল মেশিনে দুর্বল নেটওয়ার্ক কর্মক্ষমতার কারণ হতে পারে। VMQ একটি হার্ডওয়্যার বৈশিষ্ট্য এবং যদি এটি আপনার হার্ডওয়্যার দ্বারা সমর্থিত না হয় তবে ড্রাইভারে সক্ষম করা হয়, তবে এর ফলে প্যাকেটের ক্ষতি হতে পারে এবং নেটওয়ার্ক লেটেন্সি বৃদ্ধি পেতে পারে। সমস্যাটি ব্রডকম গিগাবিট নেটওয়ার্ক অ্যাডাপ্টারের জন্য সাধারণ এবং সমস্ত হাইপার-ভি সংস্করণে (উইন্ডোজ সার্ভার 2012 R2/2016/2019) দেখা যায়।
VMQ একটি ফিজিক্যাল নেটওয়ার্ক অ্যাডাপ্টার থেকে ভার্চুয়াল মেশিনে সরাসরি প্যাকেট ফরওয়ার্ড করে নেটওয়ার্ক কর্মক্ষমতা উন্নত করার জন্য ডিজাইন করা হয়েছে।আপনি আপনার নেটওয়ার্ক অ্যাডাপ্টার ড্রাইভারের বৈশিষ্ট্যগুলিতে VMQ নিষ্ক্রিয় করতে পারেন।
অথবা আপনি PowerShell ব্যবহার করে VMQ সমর্থন সহ নেটওয়ার্ক অ্যাডাপ্টারের একটি তালিকা এবং তাদের স্থিতি প্রদর্শন করতে পারেন:
Get-NetAdapterVmq
একটি নির্দিষ্ট NIC-এর জন্য VMQ নিষ্ক্রিয় করতে, নীচের কমান্ডটি চালান (নেটওয়ার্ক অ্যাডাপ্টারটি কয়েক সেকেন্ডের জন্য অনুপলব্ধ থাকবে):
Set-NetAdapterVmq -নাম "NICName" -সক্ষম $False
VMQ নিষ্ক্রিয় করার পরে, হোস্ট পুনরায় চালু করা এবং নেটওয়ার্ক কর্মক্ষমতা পরীক্ষা করা ভাল।
Windows-এ QoS ব্যান্ডউইথ সীমা নীতিগুলি নিষ্ক্রিয় করা আছে তা নিশ্চিত করুন৷উইন্ডোজ সার্ভার 2019-এ হাইপার-ভি-এর জন্য TCP সেটিংস অপ্টিমাইজ করুন
আপনার Hyper-V হোস্টে বর্তমান TCP সেটিংস সংরক্ষণ করুন এবং নতুন সেটিংস প্রয়োগ করুন যা Windows Server 2019-এ TCP সেটিংস প্রায় Windows Server 2016-এর মতোই করে তুলবে৷
বর্তমান সেটিংস সংরক্ষণ করুন:
Get-NetTCPSসেটিং -SettingName Datacenter,DatacenterCustom,InternetCustom,Internet|SettingName,CongestionProvider,CwndRestart,ForceWS|Export-csv c:\backup\ws2019_network_stack_vcp_back>
নিম্নলিখিত সেটিংস শুধুমাত্র Windows Server 2019 বা Hyper-V 2019-এ প্রয়োগ করুন।
ল্যানের জন্য নতুন NetTCP সেটিংস প্রয়োগ করুন:
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CwndRestart True
Set-NetTCPSeting -Detacenter-Detacenter-Set-Net-Seting
WAN এর জন্য:
TCP স্ট্যাক স্তরে নেটওয়ার্ক RSS এবং RSC নেটওয়ার্ক অপ্টিমাইজেশান পদ্ধতিগুলি অক্ষম করুন:
অথবা NIC স্তরে:
সমস্ত VM-এর জন্য vRSS নিষ্ক্রিয় করুন:
NICs-এ লার্জ সেন্ড অফলোড (LSO) নিষ্ক্রিয় করুন:Set-NetTCPSetting -SettingName InternetCustom,Internet -CongestionProvider CTCP
Set-NetTCPSetting -SettingName InternetCustom,Internet -DelayedAckTimeoutMs 50
Set-NetTCPSetting -Customable>Internet-Setting, netsh int tcp গ্লোবাল দেখান
netsh int tcp সেট গ্লোবাল RSS=Disabled
netsh int tcp সেট গ্লোবাল RSC=অক্ষম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 "রিসিভ সাইড স্কেলিং" -DisplayValue "অক্ষম" -NoRestartGet-VM | সেট-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 | রিস্টার্ট-NetAdapter
- Recv সেগমেন্ট কোলেসিং (IPv4/IPv6) =নিষ্ক্রিয়
- লার্জ সেন্ড অফলোড V2 (IPv4/IPv6) =নিষ্ক্রিয়
এই TCP স্ট্যাক সেটিংস Windows Server 2019 নেটওয়ার্ক প্রোটোকল সেটিংসকে পূর্ববর্তী Windows Server সংস্করণগুলির মতো করে তুলবে৷