我们有许多应用程序运行在服务器networking中的同一台服务器上。 我们希望将应用程序的带宽限制在特定的值。 所以这里有一些select:
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工具是否提供了限制多个应用程序(指定应用程序名称或其他)的带宽的方法?
您可以使用从此页面获取的以下示例中指定的u32select器。 我在这里只显示感兴趣的线。
match u32 00000016 0000ffff at nexthdr+0
此示例匹配目标端口的值0x16(从TCP报头开始的第三个和第四个字节)。
这只是一个例子,想知道如何根据目标端口来做到这一点。
是的,linux / tc可以做你所需要的,tc允许你设置filter来匹配广泛的stream量,你也可以使用iptables来标记数据包并匹配这些标记。 如果您正在尝试匹配特定应用程序的任何networkingstream量,这将变得更加困难。 我build议以专用用户的身份运行该进程,并使用iptables所有者匹配将这些数据包标记为QoS,然后可以在这些标记上使用tc。