इस लेख में हम आपको दिखाएंगे कि बिल्ट-इन और थर्ड-पार्टी टूल्स का उपयोग करके विंडोज सर्वर 2016 और विंडोज 10 पर नेटवर्क डेटा ट्रांसफर दर को कैसे प्रतिबंधित किया जाए। आप जानते होंगे कि विंडोज ऐप्स डिफ़ॉल्ट रूप से उपलब्ध नेटवर्क इंटरफ़ेस बैंडविड्थ का अधिकांश उपयोग करते हैं। इसके परिणामस्वरूप कुछ समस्याएं हो सकती हैं यदि कोई कार्य (ज्यादातर SMB शेयर्ड नेटवर्क फ़ोल्डर्स) नेटवर्क एडाप्टर के सभी उपलब्ध बैंडविड्थ का उपयोग करता है। आप नेटवर्क शेयर्ड फ़ोल्डर से अधिकतम फ़ाइल कॉपी दर को प्रतिबंधित कर सकते हैं, इस प्रकार अन्य ऐप्स के उपयोगकर्ताओं को गारंटीकृत नेटवर्क एडाप्टर संसाधन प्रदान कर सकते हैं।
TCP/IP नेटवर्क में ट्रैफिक क्लास या प्राथमिकताओं को प्रबंधित करने के लिए, QoS (क्वालिटी ऑफ सर्विस) तकनीक का उपयोग किया जाता है।
विंडोज पर QoS ग्रुप पॉलिसी कॉन्फिगर करना
आप QoS GPO सेटिंग्स का उपयोग करके विंडोज में ट्रैफिक प्राथमिकता प्रबंधित कर सकते हैं। इस परिदृश्य में, मैं सभी आउटबाउंड कनेक्शन के लिए डेटा ट्रांसफर दर को प्रतिबंधित करूंगा। (पॉलिसी तब भी लागू होगी जब उपयोगकर्ता आपके सर्वर से फ़ाइलें कॉपी करते हैं।) इस उदाहरण का उपयोग करके, आप किसी भी ऐप, पोर्ट या होस्ट/साइट के लिए दर को प्रतिबंधित कर सकते हैं।
QoS ग्रुप पॉलिसी समर्थित हैं:
- विंडोज सर्वर 2008 या उच्चतर
- विंडोज विस्टा या उच्चतर
सबसे पहले, अपने नेटवर्क एडाप्टर सेटिंग्स की जांच करें ताकि यह सुनिश्चित हो सके कि Qos Packet Scheduler विकल्प सक्षम है।
- लोकल ग्रुप पॉलिसी एडिटर कंसोल चलाएं (
gpedit.msc), कंप्यूटर कॉन्फिगरेशन -> विंडोज सेटिंग्स -> पॉलिसी-बेस्ड QoS पर जाएं और नई पॉलिसी बनाएं पर क्लिक करें; - पॉलिसी नाम निर्दिष्ट करें, Specify Outbound Throttle Rate विकल्प चेक करें और Throttle Rate सेट करें। यह MBps/KBps में वह दर है जिसे आप आउटबाउंड ट्रैफिक की दर को प्रतिबंधित करना चाहते हैं;
नोट. आप DSCP मान भी सेट कर सकते हैं। DSCP (डिफरेंशिएटेड सर्विसेज कोड पॉइंट) का उपयोग सिस्को/मिक्रोटिक जैसे उन्नत राउटर्स पर किया जा सकता है। नेटवर्क पैकेट के DSCP मान के आधार पर, राउटर्स इसके लिए प्राथमिकता सेट करेंगे। यदि आप अपने राउटर्स पर DSCP QoS सेटिंग्स के बारे में निश्चित नहीं हैं तो इस विकल्प का उपयोग न करें। - फिर आप उस प्रक्रिया/ऐप (एक निष्पादन योग्य फ़ाइल .exe) या IIS http(s) साइट का चयन कर सकते हैं जिस पर पॉलिसी लागू होगी। मैंने All applications विकल्प चेक किया हुआ छोड़ दिया;
- आप अपने कंप्यूटर पर उस IP इंटरफ़ेस को निर्दिष्ट कर सकते हैं जिस पर पॉलिसी लागू होगी। यदि आपके पास कई नेटवर्क एडाप्टर्स या IP एलियास हैं तो आपको इसकी आवश्यकता हो सकती है;
- आप डेस्टिनेशन IP पता भी निर्दिष्ट कर सकते हैं ताकि उसके लिए ट्रांसफर दर प्रतिबंधित हो;
- फिर उस प्रोटोकॉल को निर्दिष्ट करें जिस पर पॉलिसी लागू होगी (TCP, UDP, या TCP और UDP)। आप सोर्स और टारगेट पोर्ट भी चुन सकते हैं। यदि आप निश्चित नहीं हैं कि आपका ऐप किस प्रोटोकॉल का उपयोग कर रहा है, तो TCP और UDP चुनें। यदि आप SMB फ़ोल्डर में शेयर्ड फ़ाइलों तक पहुंच दर को प्रतिबंधित करना चाहते हैं, तो TCP और पोर्ट 445 चुनें।
विंडोज में QoS पॉलिसी कॉन्फिगर की गई है। आपको अपने कंप्यूटर को रीबूट करने की आवश्यकता नहीं है, आपके द्वारा परिवर्तन लागू करने के तुरंत बाद नेटवर्क में डेटा ट्रांसफर दर आकार ले लेगी। ध्यान दें कि Throttle Rate पॉलिसी एडिटर में किलोबाइट्स में प्रदर्शित होता है, भले ही आपने इसके मान के रूप में MB चुना हो।
चूंकि मैंने सभी ऐप्स और सभी पोर्ट्स चुने हैं, पॉलिसी अधिकतम नेटवर्क फ़ाइल ट्रांसफर दर को 3 MB तक थ्रॉटल करती है (फाइल एक्सप्लोरर — explorer.exe का उपयोग करके फ़ाइल कॉपी सहित)। नीचे दिए गए स्क्रीनशॉट में, आप देख सकते हैं कि कॉन्फिगर की गई QoS पॉलिसी विंडोज पर नेटवर्क फ़ाइल ट्रांसफर दर को धीमा कर देती है।
उन्नत QoS पॉलिसी भी उपलब्ध हैं जो केवल कंप्यूटर कॉन्फिगरेशन ग्रुप पॉलिसी सेक्शन में हैं। आप Inbound TCP Traffic टैब में इनबाउंड TCP ट्रैफिक को प्रतिबंधित कर सकते हैं (DSCP Marking Override टैब DSCP सेटिंग्स को संदर्भित करता है, हम यहां इसकी चर्चा नहीं करेंगे)।
जैसा कि आप देख सकते हैं, ट्रैफिक प्रतिबंध के 4 स्तर हैं। निम्न तालिका स्तरों और उनकी दरों को दिखाती है।
| Inbound TCP throughput level | Maximum Transfer Rate |
| 0 | 64 KB |
| 1 | 256 KB |
| 2 | 1 MB |
| 3 | 16 MB |
PowerShell के माध्यम से विंडोज नेटवर्क QoS पॉलिसी प्रबंधित करना
आप नेटवर्क QoS पॉलिसी बनाने और प्रबंधित करने के लिए PowerShell का उपयोग कर सकते हैं। उदाहरण के लिए, SMB (शेयर्ड फ़ाइल) ट्रैफिक के लिए बैंडविड्थ को प्रतिबंधित करने वाली QoS पॉलिसी बनाने के लिए, निम्न कमांड का उपयोग करें:
New-NetQosPolicy -Name "SMBRestrictFileCopySpeed" -SMB -ThrottleRateActionBitsPerSecond 10MB
Name : SMBRestrictFileCopySpeed Owner : Group Policy (Machine) NetworkProfile : All Precedence : 127 Template : SMB JobObject : ThrottleRate : 10.486 MBits/sec
कंप्यूटर पर लागू QoS पॉलिसी की सूची प्रदर्शित करने के लिए, यह कमांड चलाएं:
Get-NetQosPolicy
QoS पॉलिसी को संपादित या हटाने के लिए, Set-NetQosPolicy और Remove-NetQosPolicy cmdlets का उपयोग किया जाता है।
Remove-NetQosPolicy -Name SMBRestrictFileCopySpeed
Set-SmbBandwidthLimit: PowerShell के साथ SMB बैंडविड्थ सीमा कॉन्फिगर करें
Set-SmbBandwidthLimit cmdlet SMB प्रोटोकॉल पर फ़ाइल ट्रांसफर दर को प्रतिबंधित करने की अनुमति देता है। सबसे पहले, PowerShell का उपयोग करके विंडोज सर्वर घटक SMB Bandwidth Limit इंस्टॉल करें:
Add-WindowsFeature -Name FS-SMBBW
या आप इसे ग्राफिकल सर्वर मैनेजर (Add Windows Feature -> SMB Bandwidth Limit) से इंस्टॉल कर सकते हैं।
आमतौर पर इस मॉड्यूल का उपयोग Hyper-V लाइव माइग्रेशन के लिए बैंडविड्थ सीमा कॉन्फिगर करने के लिए किया जाता है। उदाहरण के लिए, निम्न कमांड अधिकतम वर्चुअल मशीन माइग्रेशन स्पीड को 100 MB/s तक सीमित कर देगा।
Set-SmbBandwidthLimit -Category LiveMigration -BytesPerSecond 100MB
आप सामान्य फ़ाइल ट्रांसफर ट्रैफिक को SMB पर प्रतिबंधित करने के लिए -Category Default पैरामीटर का भी उपयोग कर सकते हैं।
Set-SmbBandwidthLimit -Category Default -BytesPerSecond 10MB
FS-SMBBW विंडोज सर्वर 2012 R2 या उच्चतर में उपलब्ध है।
Robocopy में फ़ाइल ट्रांसफर बैंडविड्थ को थ्रॉटल करना
Robocopy के साथ काम करते समय, आप नेटवर्क पर फ़ाइलों को कॉपी/मूव करने की गति को सीमित करने के लिए एक विशेष पैरामीटर का उपयोग कर सकते हैं। यह /ipg (इंटर पैकेट गैप) है। कुंजी मिलीसेकंड में पैकेज के बीच अंतर सेट करती है और कम गति वाले चैनलों पर फ़ाइलों को कॉपी करते समय नेटवर्क लोड को कम करने के लिए उपयोग की जाती है। Robocopy 64 KB ब्लॉक्स में नेटवर्क पर डेटा ट्रांसमिट करता है। इस प्रकार यदि आप अपने नेटवर्क लिंक की बैंडविड्थ जानते हैं, तो आप ट्रांसफर दर आवश्यकताओं के आधार पर प्रासंगिक /ipg मान की गणना कर सकते हैं।
यदि आप सूत्रों में गहराई से नहीं जाना चाहते हैं, तो आप रेडी Robocopy IPG Calculator का उपयोग कर सकते हैं: https://www.zeda.nl/index.php/en/robocopyipgcalculator-en-2
आप BITS प्रोटोकॉल का उपयोग धीमे या अस्थिर नेटवर्क लिंक पर डेटा कॉपी करने के लिए भी कर सकते हैं (BITS और PowerShell का उपयोग करके बड़ी फ़ाइलों को कॉपी करने के तरीके पर लेख में उदाहरण देखें)। BITS प्रोटोकॉल चैनल लोड के आधार पर दो होस्ट के बीच डेटा ट्रांसफर स्पीड को डायनामिकली प्रबंधित करने की अनुमति देता है और डाउनलोड रिज्यूमिंग का समर्थन करता है।
थर्ड-पार्टी टूल्स का उपयोग करके ट्रैफिक शेपिंग
पोर्ट, ऐप या डेस्टिनेशन के आधार पर विंडोज में थ्रूपुट को सीमित करने के लिए सबसे लोकप्रिय कमर्शियल समाधान NetLimiter है। सबसे लोकप्रिय फ्री टूल TMeter Free है।
उल्लेखनीय अन्य:
- Glasswire — इसमें फ़ायरवॉल और नेटवर्क मॉनिटर भी शामिल है;
- NetBalancer — नेटवर्क मॉनिटरिंग और ट्रैफिक नियम सेट करना;
- cFosSpeed — ऐप्स के लिए ट्रैफिक प्राथमिकताओं को कॉन्फिगर कर सकता है;
- Net Peeker — Glasswire की तरह, इसमें फ़ायरवॉल फीचर्स हैं और यह ट्रैफिक प्राथमिकताएं सेट कर सकता है।
विंडोज QoS पॉलिसी नेटवर्क में डेटा ट्रांसफर दर को अच्छी तरह से सीमित कर सकती हैं, इसलिए यदि आप ऐसा करना चाहते हैं, तो पहले QoS को आजमाएं। किसी भी अन्य पॉलिसी की तरह, आप उन्हें gpmc.msc कंसोल का उपयोग करके डोमेन लेवल पर कॉन्फिगर कर सकते हैं।
थर्ड-पार्टी सॉफ़्टवेयर में अधिक फीचर्स और एक ग्राफिकल इंटरफ़ेस होता है, लेकिन ये ऐप्स ज्यादातर कमर्शियल हैं।