Mik*_*kov 6 networking cgroups
Cgroups 有一个名为 的模块net_prio,通过使用这个模块,我可以设置各种应用程序生成的网络流量的优先级。正如您在此处阅读的那样,这可以通过设置类似于以下内容来实现:
echo "eth0 5" > /sys/fs/cgroups/net_prio/iscsi/net_prio.ifpriomap
Run Code Online (Sandbox Code Playgroud)
但是没有关于我可以使用的优先级范围的信息。
假设我的系统中有一个程序应该具有最低的网络优先级。5的步调应该用什么?优先级是否与优先级相似nice?
来自标题为:网络优先级 cgroup 的内核文档。
摘抄
net_prio.prioidx
该文件是只读的,仅提供信息。它包含一个唯一的整数值,内核将其用作该 cgroup 的内部表示。
net_prio.ifpriomap
该文件包含分配给源自该组中的进程并在各个接口上传出系统的流量的优先级映射。它包含 <ifnamepriority> 形式的元组列表。可以通过使用相同的元组格式将字符串回显到文件中来修改此文件的内容。例如:
Run Code Online (Sandbox Code Playgroud)echo "eth0 5" > /sys/fs/cgroups/net_prio/iscsi/net_prio.ifpriomap此命令将强制源自属于 iscsi net_prio cgroup 的进程并在接口 eth0 上传出的任何流量将所述流量的优先级设置为值 5。父记账组还有一个可写的“net_prio.ifpriomap”文件,可以用于设置系统默认优先级。
我相信这些优先级在数字越大、优先级越高的情况下起作用。从tc手册页:
摘抄
PRIO The PRIO qdisc is a non-shaping container for a configurable
number of classes which are dequeued in order. This allows for
easy prioritization of traffic, where lower classes are
only able to send if higher ones have no packets available. To
facilitate configuration, Type Of Service bits are honored by
default.
Run Code Online (Sandbox Code Playgroud)
因此,如果有较低级别的数据包,它们必须等待,直到没有来自较高编号级别的数据包。