3.9. net_prio

ネットワーク優先度 (net_prio) サブシステムは、さまざまな cgroup 内でアプリケーション用の各ネットワークインターフェイス毎にネットワークトラフィックの優先度を動的に設定する方法を提供します。ネットワーク優先度はネットワークトラフィックに割り当てられる番号で、システムおよびネットワークデバイスにより内部で使用されます。ネットワーク優先度は、送信、キューに配置、またはドロップされるパケットを区別するために使用されます。tc コマンドは、ネットワーク優先度の設定に使用することができます (tc コマンドを使用したネットワーク優先度の設定は本ガイドのスコープ外です。詳しくは tc man ページを参照してください)。
通常アプリケーションは、SO_PRIORITY ソケットオプションによりトラフィックの優先度を設定しますが、アプリケーションが優先度の値を設定するようにコードが書かれていなかったり、アプリケーションのトラフィックがサイト固有で定義された優先度を提供しない場合が多くあります。
cgroup 内で net_prio サブシステムを使用すると、管理者はプロセスを特定の cgroup に割り当てて、任意のネットワーク上の送信トラフィックの優先度を定義することができます。
net_prio.prioidx
この cgroup の内部表現としてカーネルが使用する、一意の整数値を含む読み取り専用ファイル。
net_prio.ifpriomap
このグループ内のプロセスが送信元となっているトラフィック、およびさまざまなインターフェースでシステムから外に送信されるトラフィックに割り当てられた優先度のマップを含みます。このマップは、<network_interface> <priority> の形式でペアで示されます
~]# cat /cgroup/net_prio/iscsi/net_prio.ifpriomap
eth0 5
eth1 4
eth2 6
net_prio.ifpriomap ファイルの内容は、上記の形式を使用して、文字列を echo コマンドでファイルに書き込むことによって変更することができます。以下はその例です。
~]# echo "eth0 5" > /cgroup/net_prio/iscsi/net_prio.ifpriomap
上記のコマンドは、iscsi net_prio cgroup に属するプロセスから送信されるトラフィック、および eth0 ネットワークインターフェース上で送信されるトラフィックで優先度の値が 5 に設定されるよう強制します。親 cgroup には、システムのデフォルト優先度を設定するのに使用できる書き込み可能な net_prio.ifpriomap ファイルもあります。