TenForward

技術ブログ。はてなダイアリーから移転しました

Linux 3.3 の新機能 Network priority cgroup

Linux 3.3 の cgroup 関連新機能 - TenForwardの日記 で少し紹介した 3.3 の新機能である Network priority cgroup を簡単に試してみました.

net_prio に関連するのは以下のうち,

$ ls /sys/fs/cgroup/net_prio/
cgroup.clone_children  cgroup.procs        net_prio.prioidx   release_agent
cgroup.event_control   net_prio.ifpriomap  notify_on_release  tasks

"net_prio.prioidx" と "net_prio.ifpriomap" で,コントロールに使うのは "net_prio.ifpriomap" です.

ファイルの中身は以下のような感じ.

$ cat /sys/fs/cgroup/net_prio/net_prio.ifpriomap 
lo 0
eth1 0
eth0 0
br0 0
virbr0 0
virbr1 0
virbr1-nic 0
  1. cgroupfs にグループを二つ登録します.
    # cd /sys/fs/cgroup/net_prio
    # mkdir test1 test2
  2. シェルを二つ起動し,それぞれのグループに登録します.
    # echo 5259 > /sys/fs/cgroup/net_prio/test1/tasks
    # echo 5273 > /sys/fs/cgroup/net_prio/test2/tasks
  3. それぞれのグループに優先度を設定します.
    # echo "eth0 1" > /sys/fs/cgroup/net_prio/test1/net_prio.ifpriomap
    # echo "eth0 100" > /sys/fs/cgroup/net_prio/test2/net_prio.ifpriomap
    • こんな感じになります.
      # cat /sys/fs/cgroup/net_prio/test1/net_prio.ifpriomap
      lo 0
      eth1 0
      eth0 0
      br0 1
      virbr0 0
      virbr1 0
      virbr1-nic 0
      # cat /sys/fs/cgroup/net_prio/test2/net_prio.ifpriomap
      lo 0
      eth1 0
      eth0 0
      br0 100
      virbr0 0
      virbr1 0
      virbr1-nic 0

ここでそれぞれのシェルで iperf を実行してみます."server" 上で iperf -s を実行しています.

$ iperf -t 20 -c server

サーバ側で出力された結果は

[  4]  0.0-20.5 sec  2.17 GBytes   908 Mbits/sec <= priority 100 の方
[  5]  0.0-20.6 sec  71.2 MBytes  29.1 Mbits/sec <= priority 1 の方
[SUM]  0.0-20.6 sec  2.24 GBytes   936 Mbits/sec

ちょっと雑なテストですがとりあえず ^^;

Linux 3.3 の新機能 Network priority cgroup (2) - TenForwardの日記へ続く