TC(Linux Qos 实用程序)可以限制目标应用程序的带宽使用量吗?

TC(Linux Qos 实用程序)可以限制目标应用程序的带宽使用量吗?

我们有许多应用程序运行在位于服务器网络内的同一台服务器上。我们希望将应用程序的带宽限制为特定值。因此,这里有一些选择:

   suppose we have three apps: A, B, and C.
   1) Use Linux (kernel 2.6) QoS Utilities to limit the bandwidth of
      these three applications.            
   2) Develop our own application to limit the bandwidth.

当然第一种是首选,但是我们需要知道Linux提供的qos工具是否能满足我们的需求。首先要检查的是,像TC这样的Qos工具是否提供了任何方法来限制多个应用程序的带宽(指定应用程序名称或其他)?

答案1

您可以使用u32以下示例中指定的选择器这一页。我在这里只展示感兴趣的线条。

match u32 00000016 0000ffff at nexthdr+0

此示例与目标端口的值 0x16 匹配(从 TCP 标头开头开始的第三和第四个字节)。

这只是一个例子,帮助您了解如何根据目的港口进行操作。

答案2

是的,linux/tc 可以满足您的要求,tc 允许您设置过滤器以在广泛层面上匹配流量,您还可以使用 iptables 标记数据包并匹配这些标记。但是,如果您尝试匹配特定应用程序的任何网络流量,这会变得更加困难。我建议以专用用户身份运行该过程,并使用 iptables 所有者匹配为 QoS 标记这些数据包,然后可以在这些标记上使用 tc。

相关内容