Наверняка вы хотите ограничить скорость передачи данных в локальной сети с помощью встроенных инструментов Windows 10, но не знаете, как это сделать. Вот и разберем, как ограничить максимальную скорость копирования файлов из общей сетевой папки, тем самым, предоставим гарантированные ресурсы сетевого адаптера для других приложений.
Настройка QoS в групповой политике
Можем управлять приоритетом трафика в Windows с помощью настроек QoS. Давайте ограничим скорость данных всех исходящих подключений. Это применимо, даже тогда, когда пользователи копируют файлы с вашего сервера. Используя этот маневр, сможем ограничить скорость для любого приложения, порта или хоста (сайта). Прежде чем начать, убедитесь, что Qos Packet Scheduler включена в сетевом адаптере.
Шаг 1. Нажмите Win+R и введите gpedit.msc
, чтобы открыть редактор групповых политик. Перейдите по параметрам «Конфигурация компьютера» > «Конфигурация Windows» > «QoS на основе политики«. Нажмите правой кнопкой мыши по QoS на основе политики и выберите «Создать новую политику«.
Шаг 2. В новом окне придумайте любое имя и ниже в графе «Укажите частоту передачи«, задайте нужном вам скорость для ограничения. Также, уберите галочку с DSCP.
Шаг 3. В этом окне вы можете выбрать приложение, процесс или указать сайт. Я в этом примере выбрал ко всем приложениям.
Шаг 4. Если у вас несколько сетевых адаптеров, то можно указать IP-интерфейса на своем компьютере, к которому будет применяться данная политика. Также, можено установить IP-адрес назначения, чтобы ограничить для него скорость передачи.
Шаг 5. В этом коне можем выбрать протокол TCP, UDP к которому будет применяться политика. Также, можем выбрать порты назначения. Если не уверены, то выбирайте протокол TCP и UDP. Если желаете ограничить скорость доступа к общим файлам в папке SMB, то TCP и порт 445.
Всё! В итоге, я выбрал все приложения, порты, протоколы и политика ограничивает максимальную скорость передачи файлов по сети в 300 Кбс.
Если вернуть в групповые политики и нажать правой кнопкой мыши по «QoS на основе политики«, то появятся дополнительные параметры, где мы сможем ограничить входящий TCP-трафик в самой первой вкладке. Выбрав нужные уровни пропускной способности. Ниже будет приведена максимальная скорость данных уровней:
- 64 КБ
- 256 КБ
- 1 МБ
- 16 МБ
Управление сетевыми политиками QoS через PowerShell
Для гурманов PowerShell разберем, как создать и управлять политикой QoS. Запускаем естественно PowerShell от имени администратора и:
1. Создать политику QoS, ограничивающую полосу пропускания для SMB в 10 Мбит/с
New-NetQosPolicy -Name "SMBRestrictFileCopySpeed" -SMB -ThrottleRateActionBitsPerSecond 10MB
2. Отобразить список примененных политик QoS на компьютере
Get-NetQosPolicy
3. Для редактирования или удаления политики QoS используются Set-NetQosPolicy
и Remove-NetQosPolicy
Remove-NetQosPolicy -Name SMBRestrictFileCopySpeed
4. Настройка ограничения полосы пропускания SMB
Set-SmbBandwidthLimit
позволяет ограничить скорость передачи файлов по протоколу SMB. Обычно это используется для настройки ограничения пропускной способности для динамической миграции Hyper-V. FS-SMBBW доступен в Windows Server 2012 R2 или выше.
Для начало нужно установить компонент Windows Server SMB Bandwidth Limit с помощью PowerShell:
Add-WindowsFeature -Name FS-SMBBW
Далее ограничим максимальную скорость миграции виртуальной машины 100 МБ/с:
Set-SmbBandwidthLimit -Category LiveMigration -BytesPerSecond 100MB
Чтобы ограничить общий трафик передачи файлов по SMB:
Set-SmbBandwidthLimit -Category Default -BytesPerSecond 10MB
Смотрите еще:
- Как ограничить скорость интернета для скачивания обновлений Windows 10
- Ограничить скорость скачивания и отправку файлов в OneDive Windows 10
- Как узнать пропускную скорость сетевой карты на компьютере
- Как включить сетевой протокол SMB 1 в Windows 10
- Не найден сетевой путь ошибка 0x80070035
[ Telegram | Поддержать ]
You may have often found yourself in a situation where you are moving data (inbound or outbound) from your PC to another location over the network and other online tasks become difficult to perform during the transfer. This happens because specific or multiple tasks are choking up your bandwidth.
This can be controlled through the Quality of Service (QoS) feature in the following Microsoft products:
- Windows
- Windows 11
- Windows 10
- Windows 8.1
- Windows 8
- Windows 7
- Windows 7
- Windows Vista
- Server
- Server 2022
- Server 2019
- Server 2016
- Server 2012 R2
- Server 2012
- Server 2008 R2
- Server 2008
Before we move on to showing you how to limit the bandwidth of a specific app using QoS, there are a few things we’d like you to understand.
Quality of Service in networking terms refers to controlling network traffic through a set of rules and policies. QoS enables users to have granular control over their system network/internet download and upload bandwidth.
Networking devices function properly whilst relying on a combination of rules that enable them to sort and prioritize packets. QoS is used to define this information in the packet header so that the networking devices understand how to prioritize individual data.
For example, voice packets (Voice Over IP (VoIP)) have a higher priority over regular packets, which is why they are let through these devices before the ones with the lesser priority, which in turn increases the priority of the application transmitting and receives the VoIP packets.
QoS is mostly used for resource-intensive networks. However, individuals can also use this feature to prioritize one app over the other to ensure it communicates over the network without an interruption from other tasks.
You can also apply a cap on individual apps and tasks/services to not use more than the permitted network bandwidth, also known as throttling rate, using QoS. You can control the throttle rates for outbound network traffic for the following:
- Sending the application and directory path
- Source and destination IPv4 or IPv6 addresses or address prefixes
- Protocols – Transmission Control Protocol (TCP) and User Datagram Protocol (UDP)
- Individual source and destination ports and port ranges
- Specific groups of users and computers through deployment in Group Policy
The network traffic priority is defined by the Differentiated Services Code Point (DSCP) inside a packet.
What is Differentiated Services Code Point (DSCP)
The DSCP is a number between 0 and 63 inside the Type of Service (ToS) field in the IPv4 packet’s header, and inside the Traffic Class field in the IPv6 packet. This value defines the priority of the packets. A different range of DSCP values determines the different classes of these packets. Here is a table defining the packet classes and the associated DSCP ranges:
Classes | DSCP Value |
Background (BG) (Lower than best effort) | 8-23 |
Best Effort (BE) | 0-7 & 24-31 |
Video (VI) (High-priority) | 32-47 |
Voice (VO) (Mission-Critical) | 48-63 |
Before the launch of Windows Vista, Microsoft allowed different software manufacturers to define their own DSCP values. However, due to incorrect DSCP values being configured by these manufacturers and causing hindrance to mission-critical packets (such as VoIP), Microsoft began setting the DSCP values of application packets to 0.
You can now redefine these DSCP values for individual apps.
This information is important in the process of limiting the bandwidth consumption of an app. Let us now show you how to do it.
Limit App Bandwidth Using Quality of Service (QoS)
You can configure QoS on a Windows computer using the Group Policy Editor. Follow the steps below to do so:
Note: Windows Home editions come without a Group Policy Editor. Learn how to enable it in Windows Home editions.
- To begin, confirm that the QoS Packet Scheduler is enabled on your network adapter. Open the Network Connections by typing in ncpa.cpl in Run, right-click on the network adapter and click Properties from the context menu.
- Now ensure that the box next to “QoS Packet Scheduler” is checked.
- Now open the Group Policy Editor by typing in gpedit.msc in Run.
- Now navigate to the following location from the left pane:
Local Computer Policy >> Computer Configuration >> Windows Settings >> Policy-Based QoS
- Right-click “Policy-based QoS” and click Create new policy from the context menu.
- In the popup wizard, enter a custom policy name. Then, uncheck the box next to “Specify DSCP Value” and check the box next to “Specify Outbound Throttle Rate.” Now enter a limit for the outbound traffic you want to allow. Once configured, click Next.
- Now select “Only applications with this executable name” and then enter the name of the .exe file along with the extension in the text field. You can also provide the complete path of the app, but it is not necessary. Once done, click Next.
Note: You can also select “All applications” if you want to limit outbound throttle rate of all apps and services. This also includes the throttle rate of the files and folders when someone else is moving data from your PC to theirs over the network. - On the next page, leave the default selections and click Next.
Note: You can also choose to limit the throttle rate for a specific source or destination IP address. Since we are only limiting the bandwidth for an app on the local PC, we kept the default selections. - Leave the default selections again and click Finish.
Note: Here, you can also define the source and destination ports or port ranges, as well as the type of packets. Since we are only limiting the bandwidth for an app on the local PC, we kept the default selections.
The QoS policy is now configured. Here, we have limited the bandwidth consumption for Google Chrome to 2 Mbps.
You can repeat the steps above to limit bandwidth for more applications and create more policies.
You can also edit an existing policy if you wish to make changes to it, or delete it entirely if you wish to continue with the system default settings. This can be done through the context menu of the policy.
Limit Inbound TCP Traffic Throughput using QoS
You can also limit the throttle rate of the inbound TCP traffic on your PC using the QoS feature in Windows. Here is how:
- Open the Group Policy Editor and navigate to “Policy-based QoS,” the same as in steps 3 and 4 above.
- Right-click “Policy-based QoS” from the left pane and then click Advanced QoS Settings from the context menu.
- From the popup, check the box next to “Specify the inbound TCP throughput level” and then select a level from the given options. The throughput of these levels is given in the table below. When selected, click Ok.
Inbound TCP Throughput Level | Maximum Transfer Rate |
0 | 64 KB |
1 | 256 KB |
2 | 1 MB |
3 | 16 MB |
Why Use Quality of Service (QoS)
There are many other bandwidth management tools out there, but QoS gives you more advantages over them.
Without having to use third-party software, QoS allows you to manage your network’s traffic, especially with the increasing network activity on organizational scales. Thus, it becomes important to prioritize mission-critical traffic and reduce the latency for communication.
With no additional overhead costs for third-party licenses, you can manage your network’s traffic with QoS integrated right into your operating system.
Closing Words
If you are looking to increase your internet speed, you can limit the bandwidth usage of individual apps as discussed in this post, or limit the system reservable bandwidth to increase your available bandwidth.
Also see:
Subhan Zafar is an established IT professional with interests in Windows and Server infrastructure testing and research, and is currently working with Itechtics as a research consultant. He has studied Electrical Engineering and is also certified by Huawei (HCNA & HCNP Routing and Switching).
Как-то раз мне понадобилось по самбе с одного сервера на другой скопировать большой объём данных. Сервер просел по дискам и всё закончилось гневными криками и копирование пришлось отменить. Как же быть? Ограничиваем скорость копирования по сети встроенными средствами Windows. Для ограничения трафика используем QoS.
QoS — quality of service (качество обслуживания). Это технология предоставления различным классам трафика различных приоритетов в обслуживании.
Шейпинг (shaping traffic) — ограничение пропускной способности канала для отдельного узла сети ниже технических возможностей канала. Шейпинг обычно используется как средство ограничения максимального потребления трафика со стороны узла сети.
Первым делом заходим в свойства сетевой карты, которую будем ограничивать. Устанавливаем галку на Qos Packet Scheduler.
Ok.
Далее открываем консоль Local Group Policy Editor (Редактор локальной групповой политики) или выполняем:
gpedit.msc
Заходим в Local Computer Policy > Computer Configuration > Windows Settings > Policy-based QoS.
Создаём новую политику, правой кнопкой — Create new policy. Открывается окошко создания политики.
Policy name — указываем любое.
Specify Throttle Rate — вот здесь и будем ограничивать скорость, попробуем 1024 Кб в секунду.
Переключаемся на вкладку Application Name.
Применяем политику для всех приложений — All applications. Переключаемся на вкладку IP Addresses.
Источник я не буду ограничивать — Any source IP Address. А вот получателя буду, в поле Only for the following destination IP address or prefix указываю IP адрес, на который буду закачивать данные. Переключаемся на вкладку Protocol and Ports.
Я собираюсь резать только трафик на самбу. поэтому указываю протокол TCP, и номер порта 445. OK
Собственно, всё готово. Проверяю скорость. Запускаю на копирование массив данных.
Вижу 881 KB/sec на отправителе.
Меняю в политике скорость, указываю 2048 Кб в секунду.
Нажимаю ОК и проверяю скорость.
1,14 MB/sec — скорость подросла. На получателе наблюдаю такую картину нагрузки на сеть в момент изменения политики.
Видно, что нагрузка резко выросла примерно в два раза и составляем 16,5 Мегабит в секунду. Если перевести в Мегабайты, получится 2014 Кб в секунду, почти то, что указали в политике.
Проверим ещё раз как работает изменение скорости копирования налету. Меняю в политике скорость, указываю 4096 Кб в секунду.
Нажимаю ОК и проверяю скорость.
1,54 MB/sec — скорость ещё подросла. На получателе наблюдаю такую картину.
Всё работает как часы, небольшой провал не в счёт. Настройка заняла минимальное время, несколько кликов мышкой и скорость загрузки по самбе ограничена указанными вами значениями.
QoS Group Policy on Windows | Traffic Shaping
QoS Group Policy on Windows | Traffic Shaping
This tutorial will show you how to configure a QoS group policy on Windows 2012 server.
This tutorial will show you how to limit all the HTTP connection at 50KBytes.
In our example, a web server named TECH-WEB01 will offer web pages using HTTP and HTTPS.
In our example, the web server named TECH-WEB01 will limit the speed of HTTP connections to 50KBytes.
The domain controller is running Windows 2012 R2.
The domain computers are running Windows 7 and Windows 10.
Hardware List:
The following section presents the list of equipment used to create this Windows tutorial.
Every piece of hardware listed above can be found at Amazon website.
Windows Playlist:
On this page, we offer quick access to a list of videos related to Windows.
Don’t forget to subscribe to our youtube channel named FKIT.
Windows Related Tutorial:
On this page, we offer quick access to a list of tutorials related to Windows.
Tutorial — Creating the Active Directory Structure
The following tasks were executed on a domain controller running Windows 2012 R2 with Active directory.
Click on the Start menu, locate and open the Active Directory Users and Computers screen.
On the Active Directory Screen, Right-click the domain name.
Select the option to create a new organizational unit.
In our example, the new organizational unit was named: QoS
Now, you need to move the desired computer to the QoS organizational unit.
In our example, we moved the web server named TECH-WEB01 to the QoS organizational unit.
Tutorial — Creating the QoS GPO
The following tasks were executed on a domain controller running Windows 2012 R2 with Active directory.
Click on the Start menu, locate and open the Group Policy Management tool.
On the Group Policy Management screen, locate the folder named Group Policy Objects.
Right-click the Group Policy Objects folder and select the New option.
Enter a name for your new policy.
In our example, the new GPO was named: QOS — LIMIT HTTP 50KBYTES
On the Group Policy Management screen, expand the folder named Group Policy Objects.
Right-click your new Group Policy Object and select the Edit option.
On the group policy editor screen, you will be presented to User configurations and Computer configurations.
We will change only the Computer configurations.
We don’t need to change any User configuration.
On the group policy editor screen, expand the Computer configuration folder and locate the following item.
• Computer Configuration > Policies > Windows Settings > Policy-based QoS
Right-click the Policy-based QoS object and select the option: Create New Policy.
On the new screen, you need to perform the following configuration:
• Policy Name: QOS — LIMIT HTTP 50KBYTES
• Specify DSCP Value — NO
• Specify Outbound Throttle Rate: 50 KBps
On the next screen, select the option named: This QoS policy applies to All applications.
On the next screen, you need to perform the source or destination IP address configuration.
In our example, we kept the default configuration and clicked on the Next button.
Now, you need to specify the type of communication that must have the bandwidth limited.
In our example, we need to limit the communication from the Web server to any client.
The web server uses the TCP protocol and the 80 source port.
Click on the Finish button.
To finish the group policy creation you need to close the Group policy editor window.
Only when you close the group policy window, the system will save your configuration.
Tutorial — Applying the QoS GPO
You have finished the creation of the QoS GPO.
But, you still need to enable the use of your new Group Policy.
On the Group policy management screen, you need to right-click the Organizational Unit desired and select the option to link an existent GPO.
In our example, we are going to link the group policy named QOS — LIMIT HTTP 50KBYTES to the organizational unit named QoS.
After applying the GPO you need to wait for 10 or 20 minutes.
During this time the GPO will be replicated to other domain controllers that you might have.
After waiting 20 minutes, you should reboot the QoS client computer.
During the boot, the computer will get and apply a copy of the new QoS group policy.
After rebooting the client computer, open a POWERSHELL command prompt.
Use the following command to check if the QoS group policy was applied.
# Get-NetQosPolicy -PolicyStore ActiveStore
Name : QoS — limit http 50kbytes
Owner : Group Policy (Machine)
NetworkProfile : All
Precedence : 127
IPProtocol : TCP
IPSrcPortStart : 80
IPSrcPortEnd : 80
ThrottleRate : 409.6 KBits/sec
Use the following POWERSHELL command to display detailed information related to your QoS Group policy.
In our example, the new GPO was named: QOS — LIMIT HTTP 50KBYTES
# Get-NetQosPolicy -PolicyStore ActiveStore -Name «qos — limit http 50kbytes» | Format-List -Property *
User :
AppPathName :
Template : None
NetDirectPort : 0
IPProtocol : TCP
IPPort : 0
IPSrcPrefix :
IPSrcPortStart : 80
IPSrcPortEnd : 80
IPDstPrefix :
IPDstPortStart : 0
IPDstPortEnd : 0
URI :
URIRecursive : False
PriorityValue : -1
DSCPValue : -1
MinBandwidthWeight : 0
ThrottleRate : 409600
NetworkProfile : All
TemplateMatchCondition : None
UserMatchCondition :
AppPathNameMatchCondition :
NetDirectPortMatchCondition : 0
IPProtocolMatchCondition : TCP
IPPortMatchCondition : 0
IPSrcPrefixMatchCondition :
IPSrcPortStartMatchCondition : 80
IPSrcPortEndMatchCondition : 80
IPDstPrefixMatchCondition :
IPDstPortStartMatchCondition : 0
IPDstPortEndMatchCondition : 0
URIMatchCondition :
URIRecursiveMatchCondition : False
PriorityValue8021Action : -1
DSCPAction : -1
MinBandwidthWeightAction : 0
ThrottleRateAction : 409600
Caption :
Description :
ElementName : qos — limit http 50kbytes
InstanceID : {382ACFAD-1E73-46BD-A0A0-64EE0E587B95}qos — limit http 50kbytesActiveStore
Name : qos — limit http 50kbytes
Owner : Group Policy (Machine)
Precedence : 127
Version :
PSComputerName :
CimClass : ROOT/StandardCimv2:MSFT_NetQosPolicySettingData
CimInstanceProperties : {Caption, Description, ElementName, InstanceID…}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties
To test the configuration, you need to try to download a large file from the web server.
If you are using the HTTP protocol, the QoS GPO should limit the file download to a maximum of 50 KBytes.
If you are using the HTTPS protocol, the QoS GPO should not limit the file download speed.
Maybe you are wondering how to create a QoS policy without using a Group Policy Configuration.
Use the following POWERSHELL command to limit the HTTP protocol output to 50 KBytes.
Keep in mind that 50 KBytes is the equivalent to 400 KBits.
# New-netqospolicy -Name ‘HTTP’ -IPPort 80 -IPProtocol TCP -ThrottleRateActionBitsPerSecond 400KB
Use the following POWERSHELL command to remove the QoS group policy previously created.
# Remove-NetQosPolicy -Name «HTTP»
Congratulations! You are now able to create QoS on Windows.
VirtualCoin CISSP, PMP, CCNP, MCSE, LPIC22019-05-24T01:17:38-03:00
Related Posts
Page load link
Join Our Newsletter
Ok
К обеспечению качества обслуживания нельзя подходить легкомысленно. Для решения задачи необходимо разбираться в типах сетевого трафика, сравнительной важности этого трафика, инфраструктуре самой сети и способах обеспечения уровня обслуживания для сети и операционных систем. Хорошо еще, что в Windows Server 2012 обеспечить необходимое качество обслуживания проще, чем в прошлом. Компаниям предоставляются различные варианты технологии QoS. Но сначала ответим на вопрос, почему вообще так важна приоритизация трафика?
Первый и главный совет читателям в знаменитом фантастическом романе Hitchhiker’s Guide to the Galaxy: «Никогда не паниковать». Я часто обращаюсь к нему в мыслях, когда говорю о качестве обслуживания (QoS) в компании: в глазах появляется тревога и все вспоминают о назначенном визите в поликлинику или родительском собрании в школе, отчего необходимо немедленно покинуть совещание.
Безусловно, такая нервозность отчасти обоснована.
Необходимость QoS
Современные центры обработки данных отличаются глубокой, разветвленной связью. Серверы, составляющие центр обработки данных, обмениваются друг с другом данными многих видов:
- данные приложения;
- репликация;
- трафик кластера;
- трафик сетевого хранилища (например, SMB, iSCSI);
- трафик управления;
- данные архивации.
Задача еще более усложняется из-за виртуализации. На сервере Hyper-V может потребоваться не менее пяти сетевых подключений! Учтите также избыточные пути, которые могут понадобиться для некоторых типов трафика, поэтому несколько соединений могут объединяться в группы. Отдельные соединения могут потребоваться для хранилищ при использовании таких технологий, как Fibre Channel. Все это может привести к совершенной путанице. Как компаниям упорядочить свою инфраструктуру?
Представьте, что сеть — это шоссе. Вы слышите сирену за спиной. Автомобили вокруг стараются освободить путь, но сделать это в час пик сложно, и машина скорой помощи не может проехать. А если на шоссе есть специальная полоса для автомобилей аварийных служб, большую часть времени эта полоса пустует. Автомобилист в пробке с досадой думает, насколько быстрее можно было бы доехать домой, если разрешить другим машинам использовать эту полосу. Дорожное ведомство могло бы добавлять новые полосы к магистрали для борьбы с пробками, но такое решение практически нереализуемо.
Сеть вашей компании похожа на автомагистраль. Возможно, канал связи является общим для всего сетевого трафика. В этом случае появляется опасность, что не удастся своевременно передать через сеть важные данные в период высокой нагрузки. А может быть, вы выделили сетевые соединения для каждого типа трафика, чтобы при необходимости всегда предоставить полосу пропускания определенным данным. Возможно, вы добавляете каналы связи, чтобы обеспечить передачу всего трафика.
Большинство компаний традиционно использовали второй вариант, но реализация такого подхода затруднена по нескольким причинам.
- Центры обработки данных переходят от 1-гигабитных к 10-гигабитным сетям. Наличие более двух 10-гигабитных соединений на один сервер — экономически невыгодное решение, поэтому выделение специальных соединений для каждого типа трафика не имеет смысла.
- По мере широкого внедрения виртуализации все чаще применяются сверхплотные (blade) серверы. Но в этих серверах обычно есть ограничения по числу адаптеров, что уменьшает количество соединений. Существуют исключения, если в центре обработки данных используется объединенная структура, которая позволяет создавать для узла виртуальные адаптеры, обеспечивая почти неограниченную гибкость в разделении трафика (хотя в действительности это всего лишь своеобразный механизм QoS).
- Традиционно сети строятся с большой избыточностью, чтобы обеспечить доступность полосы пропускания. Из-за возросшей важности и использования различных типов сетевого трафика большинство компаний неспособно управлять такой избыточностью. Многие выделенные сетевые соединения для определенных типов трафика либо не используются, либо используются очень редко.
Специфические проблемы связаны с виртуализацией. Многие экземпляры операционных систем функционируют на одном аппаратном устройстве и совместно задействуют набор сетевых соединений. Использование отдельных сетевых адаптеров для каждой виртуальной машины чрезвычайно непрактично. Единственная некорректная виртуальная машина может занять всю доступную полосу пропускания, лишив ресурсов другие виртуальные машины. Поэтому необходим механизм, гарантирующий не только своевременное выделение достаточной полосы пропускания для трафика различных типов, но и справедливое распределение ресурсов одного типа между различными виртуальными машинами, или клиентами, использующими виртуальную инфраструктуру.
Если у поставщика услуг размещения много клиентов, то необходимо обеспечить каждому клиенту достаточное количество ресурсов. Также полезно иметь различные уровни сетевых скоростей, например золотой, серебряный и бронзовый.
Как и следовало ожидать, QoS должно обеспечить решение этих проблем. QoS полностью согласуется с широко применяемой многоабонентской и конвергентной 10-гигабитной структурой центров обработки данных. Рассмотрим типы QoS, реализованные в Windows Server 2012, в том числе QoS на основе программного обеспечения, аппаратную технологию и специфическую QoS для виртуализации.
На первый взгляд, проблема решается простой заменой канала связи 1 Гбит на 10 Гбит — канал связи с десятикратно увеличенной пропускной способностью будет достаточным. Это соответствует увеличению числа полос на автостраде: на время острота проблемы снижается, но какие бы ресурсы ни были выделены для рабочей нагрузки, в конечном итоге их окажется мало и потребуется больше. Даже 10-гигабитное соединение со временем оказывается полностью загруженным, и проблема — для трафика определенных типов не выделяется достаточной полосы пропускания – снова становится актуальной.
QoS на основе программного обеспечения
Возможности программной приоритезации трафика существуют в Windows давно. Перейдите в объекте групповой политики (GPO) к Computer Configuration («Конфигурация компьютера»), Policies («Политики»), Windows Settings («Параметры Windows»), Policy-based QoS («QoS на основе политики»). С помощью политик можно ограничить определенной величиной полосу пропускания для различных приложений, комбинаций IP-адресов источника и места назначения, и конкретных протоколов. В прошлом в качестве средства для управления трафиком использовалась максимальная полоса пропускания для типа трафика.
В конфигурации с максимальной полосой пропускания рабочая нагрузка, на которую воздействует политика, не может превышать выделенную полосу пропускания. Это гарантирует прогнозируемую пропускную способность сети. Например, трафик в 10-гигабитном сетевом канале связи можно разделить следующим образом:
- 1 Гбит для управления;
- 1 Гбит для динамической миграции;
- 1 Гбит для кластера или общего тома кластера CSV);
- 2 Гбит для iSCSI;
- 5 Гбит для виртуальных машин.
На первый взгляд все превосходно. В обычных обстоятельствах на виртуальные машины приходится основная часть трафика, а другим типам трафика гарантирована полоса пропускания при необходимости. Но существует проблема с использованием параметров максимальной полосы пропускания для управления ресурсами канала связи: значительную часть времени половина доступной полосы пропускания почти не используется, однако она зарезервирована для случаев, когда в ней есть необходимость, как отдельная полоса для автомобилей аварийных служб. Однако свободная полоса пропускания наверняка пригодилась бы серверам, на которые приходится интенсивный трафик виртуализации. Мы впустую тратим значительную часть ресурсов и понапрасну ограничиваем свои возможности. Кроме того, технология QoS в Windows Server 2008 R2 не работает с Hyper-V.
Метод максимальной полосы пропускания полезен, если необходимо платить за использованную полосу пропускания, например в случае WAN-соединения между офисами. Тогда ограничения полосы пропускания — хорошая идея.
В Windows Server 2012 появилась концепция политики минимальной полосы пропускания, при которой разным типам трафика присваивается относительный вес. Посмотрим, как она применяется к тем же типам трафика, которые использовались в примере с максимальной полосой пропускания:
- 10 для управления;
- 20 для динамической миграции;
- 20 для кластера или общего тома кластера CSV);
- 10 для iSCSI;
- 40 для виртуальных машин.
Обратите внимание, что значения не имеют размерности; это просто относительные веса.
Принцип политики минимальной полосы пропускания следующий: по умолчанию трафик любого типа может использовать всю доступную полосу пропускания сети. Хотя вес трафика виртуальных машин — 40, он может занимать всю полосу пропускания сети, если канал связи не нужен для передачи любого другого трафика. В отсутствие конкурентов рабочие нагрузки могут использовать любую долю канала связи, до предельных возможностей сетевой структуры. Относительные веса учитываются только в случае конкуренции. В этом случае различным типам трафика гарантируется полоса пропускания в зависимости от их весов: для трафика динамической миграции будет выделено 20%, а для трафика виртуальных машин – 40%. Сумма всех весов — 100. Минимальную полосу пропускания для одного типа трафика при наличии конкуренции можно найти делением относительного веса этого типа трафика на сумму всех весов.
Кроме того, можно использовать строгую настройку минимальной полосы пропускания, в которой типам трафика назначаются абсолютные минимальные значения полосы пропускания. Например, трафику управления выделяется 1 Гбит, а трафику виртуальных машин — 4 Гбит. Однако такой подход связан с трудностями администрирования по сравнению с относительными весами. Необходимо проявлять осторожность, чтобы не завысить минимальные значения, выделяемые рабочим нагрузкам. Кроме того, назначение типу трафика минимального значения 1 Гбит не гарантирует, что он получит 1 Гбит. В большинстве сетей имеется несколько коммутаторов и путей. Типу трафика можно гарантировать полосу пропускания 1 Гбит внутри сети локального сервера, но после того как трафик покидает сервер, показатели зависят от другого трафика в сети.
Существует еще одна проблема с использованием строгой настройки минимальной полосы пропускания. Предположим, что объединяются два 10-гигабитных сетевых адаптера; это обеспечивает в исправной среде пропускную способность 20 Гбит. Если четко придерживаться подхода, основанного на минимальной полосе пропускания, и задать значение 20 Гбит, то невозможно обеспечить гарантию в случае отказа адаптера. Это противоречит самой идее объединения сетевых плат: бесперебойно предоставлять услугу в случае аварии.
По этим причинам строгий подход на основе минимальной полосы пропускания не рекомендуется. Везде, где возможно, следует использовать относительные веса.
Самое большое различие между подходами на основе минимальной и максимальной полосы пропускания в том, что минимальный вариант обеспечивает самый высокий уровень использования ресурсов сети при отсутствии конкуренции, а максимальный вариант всегда ограничивает трафик заданным максимальным показателем, что может привести к нерациональному использованию полосы пропускания. Передача внутри центра обработки данных обычно не тарифицируется, поэтому желательно задействовать канал связи по максимуму. Если используется функция QoS в версии сервера, предшествующей Windows Server 2012, то переход к политикам минимальной полосы пропускания позволяет оптимизировать использование ресурсов и избежать непроизводительных затрат.
Аппаратная технология QoS
В дополнение к программной технологии современное сетевое оборудование располагает собственными функциями QoS. Этот тип приоритезации трафика на аппаратном уровне известен как создание мостов в центре обработки данных Data Center Bridging (DCB) и определен стандартом IEEE. В этой статье основное внимание уделяется программной QoS, но важно понимать, что при наличии DCB-совместимого сетевого оборудования можно задействовать эти возможности через Windows Server 2012. Управление трафиком передано сетевому адаптеру, а не выполняется операционной системой узла. Кроме того, DCB обеспечивает управление потоком для определенных типов сетевого трафика и может запросить замедление трафика из источника (обычно коммутатора). К счастью, большинство 10-гигабитных сетевых устройств поддерживает DCB. По умолчанию DCB не активен в Windows Server 2012 и должен быть установлен как встроенный компонент с помощью следующей команды:
Install-WindowsFeature Data-Center-Bridging
QoS при виртуализации
Программная QoS также доступна виртуальным машинам. Возможность сочетать QoS с виртуальными машинами имеет решающее значение во многих средах, особенно для поставщиков услуг или компаний с различными бизнес-подразделениями, совместно использующими инфраструктуру. Гарантия того, что клиенты получают достаточное количество сетевых ресурсов, а различные уровни обслуживания предоставляются на основе льготных тарифов для «золотого» сетевого соединения — огромное преимущество. Виртуализация обеспечивает эти возможности для процессора, памяти и даже хранилищ данных, поэтому способность предоставить их для сети довершает картину управления ресурсами.
Помните, что возможности минимальной полосы пропускания допускают относительное взвешивание или строгое назначение полосы пропускания. В случае с виртуальными машинами использование минимального относительного веса еще более важно, так как виртуальные машины мобильны. Виртуальную машину можно перемещать между узлами, поэтому попытки задать строгий минимум полосы пропускания не принесут успеха, так как различные узлы имеют различные виртуальные машины с собственными параметрами. Если попытаться использовать динамическую миграцию для перемещения виртуальной машины на другой узел, на котором невозможно обеспечить настройку строгой минимальной полосы пропускания, то динамическая миграция завершится неудачей. Относительное взвешивание всегда срабатывает, так как полоса пропускания соотносится с рабочей нагрузкой сервера.
Важно понимать, что политики минимальной полосы пропускания, применяемые к виртуальным машинам, влияют только на трафик, отправляемый из виртуальной машины в физический канал связи. Если рассматривается трафик между машинами на одном узле, то политики минимальной полосы пропускания неприменимы. Трафик между двумя виртуальными машинами на одном узле никогда не проходит через физический сетевой адаптер, но направляется внутри узла виртуальным коммутатором Hyper-V и потому не занимает полосы пропускания сети. Политики максимальной полосы пропускания применимы к трафику между двумя виртуальными машинами на одном узле, как и к трафику, поступающему из виртуальной машины в сетевой канал связи. Причина различий в том, что некоторые компании взимают плату в зависимости от использованных сетевых ресурсов. Если задана максимальная полоса пропускания, то клиенты не предполагают платить за большее, чем установленный для них максимум.
Обратите внимание, что максимальная полоса пропускания применяется только к исходящему трафику из виртуальной машины; входящий трафик не ограничен. Почему не ограничивается входящий трафик? Входящий трафик уже присутствует на узле, поэтому отказ от него не принесет значительной пользы. Кроме того, если трафик передается по протоколу TCP, не существует способа оповестить отправителя, чтобы тот замедлил или остановил передачу.
В настоящее время только строгая полоса пропускания может быть настроена для виртуальных машин с использованием графического интерфейса Hyper-V Manager, как показано на экране. Это вызывает разочарование, так как оптимальный метод — использовать не строгую минимальную полосу пропускания, а относительно взвешенную минимальную полосу пропускания.
Экран. Настройка полосы пропускания в графическом интерфейсе Hyper-V Manager |
Хорошо, что, как и в других компонентах Windows Server 2012, все, что можно выполнить в графическом интерфейсе, можно выполнить и с помощью Windows PowerShell, который открывает доступ даже к более широкому набору функций, в том числе настройкам с относительными весами. Кроме того, через PowerShell можно настроить QoS на виртуальных коммутаторах Hyper-V, чего нельзя сделать с помощью графических инструментов.
Управление QoS
Во многих случаях настройка QoS выполняется с использованием PowerShell, и для большинства действий между методами управления программной, аппаратной приоритезацией трафика и DCB нет различий. Первая задача — классифицировать типы сетевого трафика, чтобы можно было применить политики.
Для аппаратной QoS число классификаций трафика ограничено восемью; при использовании программной QoS такое ограничение отсутствует. Например, можно подготовить классификацию типа iSCSI и классификацию типа динамической миграции. Удобно, что модули PowerShell, используемые для создания классификаций, располагают встроенными классификациями для наиболее распространенных типов трафика (iSCSI, NFS, SMB, динамическая миграция, SMB Directory и Wild Card для всех остальных). Если нужна какая-нибудь другая классификация, можно подготовить собственные фильтры.
После того, как данные классифицированы, можно создать и применить политики для управления и выделения полосы пропускания. Вместо перечисления команд я рекомендую прочитать статью Microsoft «Network Quality of Service (QoS) Cmdlets in Windows PowerShell» (http://technet.microsoft.com/en-us/library/hh967469), в которой подробно описаны все команды, которые могут потребоваться для приоритезации трафика.
В следующем простом примере создается новая политика для трафика динамической миграции с помощью встроенного фильтра Live Migration:
New-NetQosPolicy «Live Migration» -LiveMigration -MinBandwidthWeightAction 40
Другой вариант использования QoS относится к узлу Hyper-V благодаря наличию виртуальных коммутаторов. Виртуальные коммутаторы доступны не только виртуальным машинам, но и управляющей операционной системе. Поэтому можно создать несколько виртуальных адаптеров для использования самим узлом Hyper-V. Например, можно создать адаптер виртуальной сети динамической миграции, виртуальный адаптер кластера и т.д. Затем можно применить политики QoS непосредственно к виртуальным сетевым адаптерам для управления их пропускной способностью. Иногда сделать это проще, чем использовать, как обычно, отдельные типы фильтров для разных видов трафика. Например, следующие две команды создают новый виртуальный адаптер на операционной системе узла Hyper-V, а затем назначают ему политику относительного веса минимальной полосы пропускания:
Add-VMNetworkAdapter -ManagementOS -Name «LiveMigration» -SwitchName «External Switch» Set-VMNetworkAdapter -ManagementOS -Name «LiveMigration» -MinimumBandwidthWeight 40
В путь
Главная особенность QoS в Windows Server 2012 — возможность технологии изменить привычный подход к организации сетей в центре обработки данных. Вместо отдельных сетевых соединений для каждой рабочей нагрузки используйте быстродействующие каналы связи и механизм QoS, чтобы выделить необходимую пропускную способность различным типам трафика. Даже обладатели DCB-совместимого сетевого оборудования могут с успехом применять программную технологию QoS, особенно в среде Hyper-V; программная QoS отличается более высокой масштабируемостью по числу политик. Для внедрения QoS требуются некоторые усилия, но благодаря относительным минимумам процесс значительно упрощается и в то же время обеспечивается полное использование ресурсов.