是否可以更改应用程序访问 NIC 的优先级/nice 值,从而优先考虑带宽?

是否可以更改应用程序访问 NIC 的优先级/nice 值,从而优先考虑带宽?

是否可以调整哪些应用程序在 NIC 上接收最多带宽,类似于 -20 到 +20 Nice 值,但针对的是带宽而不是处理器时间?

传输似乎阻碍了我的其他应用程序。我可以通过其选项减慢应用程序的速度,但我想知道是否有一个 Linux/非特定于应用程序的解决方案,我可以在其中查看和调整具有网络访问权限的所有内容。

更新: 我怀疑问题出现在下面的输出中。目前,所有 Web 和传输流量都是 TCP 源端口 80 和动态目标端口,并集中在 0:3 类中(具有 16810552 字节和 171075 个数据包)。因此,因为我的网络连接速度不是那么快,所以传输速度足以让我超时。输出显示队列规则没有丢弃任何数据包。

我正在看tcng作为可能的解决方案,因为配置已经存在。

$ tc qdisc show dev wlp2s0
qdisc mq 0: root 
qdisc fq_codel 0: parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn 
qdisc fq_codel 0: parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn 
qdisc fq_codel 0: parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn 
qdisc fq_codel 0: parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn 

$ tc -g -s class show dev wlp2s0
+---(:4) mq 
|       Sent 5670 bytes 105 pkt (dropped 0, overlimits 0 requeues 1) 
|       backlog 0b 0p requeues 1
|   
+---(:3) mq 
|       Sent 16810552 bytes 171075 pkt (dropped 0, overlimits 0 requeues 0) 
|       backlog 0b 0p requeues 0   competing for bandwidth
|     
+---(:2) mq 
|       Sent 2538 bytes 31 pkt (dropped 0, overlimits 0 requeues 1) 
|       backlog 0b 0p requeues 1
|     
+---(:1) mq 
        Sent 13432 bytes 76 pkt (dropped 0, overlimits 0 requeues 0) 
        backlog 0b 0p requeues 0

答案1

流量整形 QoS

我曾经使用过诸如奇迹塑造者,涓流或 pyshaper 来限制网络流量。

例子

涓流

将上传/下载速度限制为 20Kbps。

$ trickle -d 20 wget -c http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

您也可以在上述场景中单独设置这些。您也可以像这样将这些设置设为默认设置。

$ trickled -d 50 -u 10

奇迹塑造者

您还可以使用 Wondershaper 来控制网络级别的带宽。例如,假设我想限制我的eth1设备。

$ sudo wondershaper eth1 1024 256

这将为我提供 1024 Kbits 的下载速度和 256 Kbits 的上传速度。分别是 128KB 和 16KB。

当您想要释放盖子时。

$ sudo wondershaper clear eth1

pyshaper

pyshaper之前已经在该网站上进行过广泛介绍,请参阅这些 U&L 问答,标题为:

这些都是非常强大的工具,因此这只是为了向您展示其潜力。

参考

答案2

也许您正在寻找的是服务质量(QoS),这在您最喜欢的防火墙(例如iptables,,,,等)中可能不容易获得,但在任何现代路由器上应该很简单,并且通过以下nftables方式pf运行ufwIP/端口

iptables 示例; https://serverfault.com/questions/762921/qos-with-iptables-and-tc-with-unstable-wan

正如 slm 提到的,trickle可以在启动时使用过程当不使用具有速率限制作为内置选项的命令(例如rsynccurl、 )时。wget

wondershaper可以用来限制[虚拟]界面这对于可以绑定到网卡的命令和虚拟机很有用(如rsynccurlwget)。

相关内容