如何改进 Linux 网络流量优先级,以便大量下载不会阻碍浏览?

如何改进 Linux 网络流量优先级,以便大量下载不会阻碍浏览?

自从我再次切换到 Linux 桌面后,我注意到在下载大型文件(例如,在 Chrome 中)时,正常浏览和任何其他网络操作基本上变得不可能,因为下载似乎被虚拟地分配了全部可用带宽,而不考虑其他进程。

在 Windows 上,这不是问题——即使在下载大文件时(下载速度几乎相同),浏览仍然非常流畅,因为 Windows 显然更智能地对数据包进行优先级排序。

有什么方法可以在 Linux 上修复此问题(最好是简单的)?

答案1

我不知道这个答案是否会对您有帮助,但我不确定这是否完全归因于操作系统。

如果你的 ISP“维护”缓冲区膨胀为了在理论上获得更好的下载速度,您可以尝试使用流量整形稍微限制它。总体目标是永远不要让您的 ISP(它可能在家庭路由器或更远的地方)为传出流量或传入流量积累缓冲区。这样,交互式流量就不必在长数据队列中等待太久。虽然这对于上传你的系统发送数据包有完全的控制权(如果流量太多,可以选择延迟或丢弃流量),结果不能保证下载因为您处于缓冲区的末尾,所以操作无法产生如此直接的结果。

这涉及Linux 流量控制(使用tc) 很难掌握。拥有良好的整体网络概念是手动使用它的先决条件。下载部分更难实现,需要设置一个中级功能块虚拟(且准不可见)接口。

幸运的是,有一个在 shell 中实现的工具叫做wondershaper设置非常简单,可以处理所有事情。您必须知道您的最大下载和上传带宽(使用各种在线速度测试)并将其提供给wondershaper(以 root 用户身份或使用 运行sudo),例如(由 提供wondershaper -h,相当低)如果您的下载速度为 1Mbits/s 而上传速度为 512Kbits/s:

wondershaper -a eth0 -d 1024 -u 512

额外的调整选项优先考虑某种类型的流量,而不是其他类型的流量。

如果你使用打包版本,根据你的发行版,要小心。例如,Debian(以及 Ubuntu)令人惊讶地仍然发布基于原始版本 1.1a 的版本lartc.org,这是 2002 年发布的最后一个版本,与 1.2 - 1.4.1 分支相比缺少一些功能。

可能有更好的方法,比如使用wondershaper尚未实施的较新的算法(fq_codel......)。

一些参考:

https://www.bufferbloat.net/projects/

https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/

https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm

http://www.dslreports.com/speedtest(其中包括延迟结果,应在应用设置之前和之后进行检查)

答案2

有一个tc配置Linux QoS系统的命令,但是使用起来极其困难。

FireQoS 实用程序的使用并不困难 - 它是一个前端,tc使用起来更容易。它可以安装apt-get fireqos在 Debian 或 Debian 衍生系统上。然后您可以按照教程进行操作这里进行设置;该教程非常容易理解,每次我在系统上进行设置时我都会遵循它。

为了防止@AB 提到的缓冲区膨胀情况,请将您的传入接口速度设置为略低于实际传入接口速度。

相关内容