1 ======================= 1 ======================= 2 Network priority cgroup 2 Network priority cgroup 3 ======================= 3 ======================= 4 4 5 The Network priority cgroup provides an interf 5 The Network priority cgroup provides an interface to allow an administrator to 6 dynamically set the priority of network traffi 6 dynamically set the priority of network traffic generated by various 7 applications 7 applications 8 8 9 Nominally, an application would set the priori 9 Nominally, an application would set the priority of its traffic via the 10 SO_PRIORITY socket option. This however, is n 10 SO_PRIORITY socket option. This however, is not always possible because: 11 11 12 1) The application may not have been coded to 12 1) The application may not have been coded to set this value 13 2) The priority of application traffic is ofte 13 2) The priority of application traffic is often a site-specific administrative 14 decision rather than an application defined 14 decision rather than an application defined one. 15 15 16 This cgroup allows an administrator to assign 16 This cgroup allows an administrator to assign a process to a group which defines 17 the priority of egress traffic on a given inte 17 the priority of egress traffic on a given interface. Network priority groups can 18 be created by first mounting the cgroup filesy 18 be created by first mounting the cgroup filesystem:: 19 19 20 # mount -t cgroup -onet_prio none /sys 20 # mount -t cgroup -onet_prio none /sys/fs/cgroup/net_prio 21 21 22 With the above step, the initial group acting 22 With the above step, the initial group acting as the parent accounting group 23 becomes visible at '/sys/fs/cgroup/net_prio'. 23 becomes visible at '/sys/fs/cgroup/net_prio'. This group includes all tasks in 24 the system. '/sys/fs/cgroup/net_prio/tasks' li 24 the system. '/sys/fs/cgroup/net_prio/tasks' lists the tasks in this cgroup. 25 25 26 Each net_prio cgroup contains two files that a 26 Each net_prio cgroup contains two files that are subsystem specific 27 27 28 net_prio.prioidx 28 net_prio.prioidx 29 This file is read-only, and is simply inform 29 This file is read-only, and is simply informative. It contains a unique 30 integer value that the kernel uses as an int 30 integer value that the kernel uses as an internal representation of this 31 cgroup. 31 cgroup. 32 32 33 net_prio.ifpriomap 33 net_prio.ifpriomap 34 This file contains a map of the priorities a 34 This file contains a map of the priorities assigned to traffic originating 35 from processes in this group and egressing t 35 from processes in this group and egressing the system on various interfaces. 36 It contains a list of tuples in the form <if 36 It contains a list of tuples in the form <ifname priority>. Contents of this 37 file can be modified by echoing a string int 37 file can be modified by echoing a string into the file using the same tuple 38 format. For example:: 38 format. For example:: 39 39 40 echo "eth0 5" > /sys/fs/cgroups/net_pr 40 echo "eth0 5" > /sys/fs/cgroups/net_prio/iscsi/net_prio.ifpriomap 41 41 42 This command would force any traffic originati 42 This command would force any traffic originating from processes belonging to the 43 iscsi net_prio cgroup and egressing on interfa 43 iscsi net_prio cgroup and egressing on interface eth0 to have the priority of 44 said traffic set to the value 5. The parent ac 44 said traffic set to the value 5. The parent accounting group also has a 45 writeable 'net_prio.ifpriomap' file that can b 45 writeable 'net_prio.ifpriomap' file that can be used to set a system default 46 priority. 46 priority. 47 47 48 Priorities are set immediately prior to queuei 48 Priorities are set immediately prior to queueing a frame to the device 49 queueing discipline (qdisc) so priorities will 49 queueing discipline (qdisc) so priorities will be assigned prior to the hardware 50 queue selection being made. 50 queue selection being made. 51 51 52 One usage for the net_prio cgroup is with mqpr 52 One usage for the net_prio cgroup is with mqprio qdisc allowing application 53 traffic to be steered to hardware/driver based 53 traffic to be steered to hardware/driver based traffic classes. These mappings 54 can then be managed by administrators or other 54 can then be managed by administrators or other networking protocols such as 55 DCBX. 55 DCBX. 56 56 57 A new net_prio cgroup inherits the parent's co 57 A new net_prio cgroup inherits the parent's configuration.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.