基于Windows Server 2012策略的QoS

我试图在Windows Server 2012虚拟机上运行基于策略的QoS(在Hyper-V上运行),但由于某种原因,它并没有踢入。我添加策略的方式是进入本地组策略编辑器==> Windows设置==>基于策略的QoS,并为特定的exe文件(没有使用path,只是EXE名称)添加一个新的策略,DSCP值为0,并且40960的节stream率作为开始。

当我运行exe文件时,它很快就开始打出100mb / s或更高的出站速率,这是不应该做的。 我试图做一个gpupdate /force到服务器,但这并没有改变任何东西。 最后,我把QoS策略改为任何应用程序,TCP / UDP和40960的节stream率,但是对我来说还是没有任何限制 – 它仍然在100mb / s以北运行,这与相当大的一个主机法案。

任何想法,我怎么能限制这个exe文件? 我不能使用我们的路由器,因为我不知道这个出站stream量的目标IP地址 – 它只是使用DNS到Azure,如果他们改变了IP,我会不走运。

编辑:我发现一个SF的post(这里: 我怎样才能限制在Windows Server 2008 R2中的用户带宽 ),提到了一个名为NetLimiter 4实用程序,并给它一个镜头,但它也似乎并没有限制,因为我的带宽是仍然高达90mb / s。

我认为你误解了QoS的工作原理。

比方说,你有两个应用程序运行在服务器上(应用程序A和应用程序B),或者是最大的带宽。 您决定要确保应用程序A获得更多的带宽。

在这种情况下,您将定义两个策略(可以说使用exe名称),给予App A DSCP值10和App B 5.您为App A分配一个10 MB / s的节stream值,向App分配5 Mb / s的节stream值B.

重要的一点当应用程序A自己运行时,它不会被限制在10MB / s,应用程序B自己运行时不会受到5MB / s的限制。 只有当两者一起运行且存在带宽争用时,节stream限制才有效。

发生这种情况是因为它不是一个带宽限制机制,而是服务质量,devise实现是优先处理stream量,而不是在有可用带宽时进行限制。

看看这里的文章了解更多信息,但是有关上面的部分是这样的

将DSCP值分配给QoS策略时,实质上是为出站networking通信创build一个队列。 默认情况下,通过队列的stream量不受限制。 QoS只在带宽争用成为问题时限制stream量。 在这种情况下,较低优先级的队列会产生较高优先级的队列。

在某些情况下,如果大量stream量通过较高优先级队列,高优先级队列可能会阻塞较低优先级队列。 在这种情况下,上图中显示的对话框让您有机会限制队列的出站stream量。 这样做会实现带宽上限,防止队列消耗过多的带宽。 节stream率可以用千比特每秒或兆比特每秒来指定。

您可能想要查看hyper-vpipe理器中vmconfiguration上的带宽/ qos设置,以实现真正的带宽控制

我已经在networking世界中使用QoS多年了。 我没有在Microsoft Windows Server(任何版本)中使用它,但是我认为这些概念是相同的。 服务质量旨在控制带宽。 当拥塞时,您可以优先考虑某些types的stream量(通过网页浏览进行语音和video),但是您需要的是stream量监pipe/整形。 通过监pipe,您可以设置最大带宽,高于此值的任何数据都将被丢弃。 在整形过程中,多余的stream量将在队列后传输,同时确保不超过带宽上限。

https://technet.microsoft.com/en-us/library/hh831679.aspx#bkmk_bandwidth

当为工作负载设置“最大带宽”时,即使系统中没有其他工作负载正在使用networking带宽,工作负载也不能超过上限。 当为工作负载设置最小带宽时,工作负载可以使用尽可能多的带宽 – 直到出现networking拥塞。

我无法确定Microsoft的“最大带宽”function是否打算使用策略或整形,但是TechNet文章中的错误使我想要做的事情成为可能。 但是,我似乎无法让我的Windows 10 PC上工作。 :/

更新2015年10月23日我发现一篇文章详细介绍了你想要实现的stream程(交警一个单一的可执行文件),但是我已经尝试了Server 2008和Windows 10上的这个,甚至在多次重启之后都无济于事。 其他人似乎有它的工作,除了在该线程的最后一个评论者,所以这应该工作… https://practicalsbs.wordpress.com/2014/08/05/onedrive-throttling-upload-speed/

在Win Server 2012 R2上使用powershell为我工作,政策采取新的价值大约5分钟的延迟,但工作。

我在一台机器上以服务器的forms在带宽模式下运行psping,并在端口444上设置策略以10Mbit / sec节stream,443端口保持未节stream状态

 PS C:\windows\system32> New-NetQosPolicy -Name "Port444" -IPPort 444 -ThrottleRateActionBitsPerSecond 10Mb Name : Port444 Owner : Group Policy (Machine) NetworkProfile : All Precedence : 127 IPProtocol : Both IPPort : 444 ThrottleRate : 10.486 MBits/sec 

从另一台机器,这里是443和444端口带宽之间的差异:

 PS D:\Common\Sysinternals> .\psping.exe -b -l 1K -n 10s -r -4 10.10.10.10:443 PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility Copyright (C) 2012-2016 Mark Russinovich Sysinternals - www.sysinternals.com Setting warmup count to match number of outstanding I/Os: 16 TCP bandwidth test connecting to 10.10.10.10:443: Connected 10 seconds (16 warmup ops) receiving 1024 bytes TCP bandwidth test: 205087100% TCP receiver bandwidth statistics: Received = 10, Size = 1024, Total Bytes: 1175108608, Minimum = 101.67 MB/s, Maximum = 113.49 MB/s, Average = ***112.05 MB/s*** PS D:\Common\Sysinternals> .\psping.exe -b -l 1K -n 10s -r -4 10.10.10.10:444 PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility Copyright (C) 2012-2016 Mark Russinovich Sysinternals - www.sysinternals.com Setting warmup count to match number of outstanding I/Os: 16 TCP bandwidth test connecting to 10.10.10.10:444: Connected 10 seconds (16 warmup ops) receiving 1024 bytes TCP bandwidth test: 1850664100% TCP receiver bandwidth statistics: Received = 10, Size = 1024, Total Bytes: 13563904, Minimum = 1.01 MB/s, Maximum = 1.47 MB/s, Average = ***1.24 MB/s***