4.2. ネットワークトラフィックの優先度設定

単一のサーバーシステムでネットワーク関連サービスを複数実行している場合には、それらのサービス間におけるネットワークの優先度を定義することが重要です。これらの優先度を定義することにより、特定のサーバーから発信されるパッケージの優先度を、その他のサービスから発信されるパッケージよりも優先度を高くすることができます。たとえば、そのような優先度は、サーバーシステムが同時に NFS および Samba サーバーとして機能する場合に役立ちます。NFS のトラフィックは、ユーザーが高スループットを期待するので、優先度を高くする必要があります。Samba のトラフィックは、NFS サーバーのパフォーマンスを向上させるために、優先度を低くすることができます。
net_prio サブシステムを使用して、cgroup 内のプロセスの優先順位を設定することができます。次に、これらの優先度が Type Of Service (TOS) ビットに変換され、各パケットに埋め込まれます。二つのファイル共有サービス (NFS と Samba) の優先度を設定するには、手順4.2「ファイル共有サービスのネットワーク優先度の設定」 の手順にしたがってください。

手順4.2 ファイル共有サービスのネットワーク優先度の設定

  1. net_prio サブシステムを /cgroup/net_prio cgroup に接続します。
    ~]# mkdir /cgroup/net_prio
    ~]# mount -t cgroup -o net_prio net_prio /cgroup/net_prio
  2. サービスごとに 2 つの cgroup を作成します。
    ~]# mkdir /cgroup/net_prio/nfs_high
    ~]# mkdir /cgroup/net_prio/samba_low
  3. nfs_high cgroup に nfs を自動的に移動するには、/etc/sysconfig/nfs ファイルに以下の行を追加します。
    CGROUP_DAEMON="net_prio:nfs_high"
    この設定は、nfs サービスが起動または再起動された時に、nfs サービスプロセスが nfs_high cgroup に移動するようにします。cgroup への サービスプロセス移動についての詳細は、「コントロールグループ内のサービスの開始」 を参照してください。
  4. smbd デーモンの設定ファイルは /etc/sysconfig ディレクトリにはありません。smbd デーモンを samba_low cgroup に自動的に移動するには、/etc/cgrules.conf ファイルに以下の行を追記してください。
    *:smbd                net_prio                samba_low
    このルールにより、/usr/sbin/smbd のみではなく、すべての smbd デーモンが samba_low cgroup に移動する点に注意してください。
    同様に、nmbd および winbindd デーモンを samba_low cgroup に移動させるルールを定義することができます。
  5. cgred サービスを起動して、前の手順からの設定を読み込みます。
    ~]# service cgred start
    Starting CGroup Rules Engine Daemon:                       [  OK  ]
    
  6. この例では、両サービスが eth1 ネットワークインターフェースを使用していることを前提とします。各 cgroup にネットワークの優先度を定義します。ここで 1 優先度低く、10 は優先度が高い数値を示します。
    ~]# echo "eth1 1" > /cgroup/net_prio/samba_low
    ~]# echo "eth1 10" > /cgroup/net_prio/nfs_high
  7. nfs および smb のサービスを起動し、それらのプロセスが正しい cgroup に移動したことを確認します。
    ~]# service smb start
    Starting SMB services:                                     [  OK  ]
    ~]# cat /cgroup/net_prio/samba_low
    16122
    16124
    ~]# service nfs start
    Starting NFS services:                                     [  OK  ]
    Starting NFS quotas:                                       [  OK  ]
    Starting NFS mountd:                                       [  OK  ]
    Stopping RPC idmapd:                                       [  OK  ]
    Starting RPC idmapd:                                       [  OK  ]
    Starting NFS daemon:                                       [  OK  ]
    ~]# cat /cgroup/net_prio/nfs_high
    16321
    16325
    16376
    
    NFS から発信されるネットワークトラフィックの優先度が、Samba から発信されるトラフィックよりも高くなりました。
手順4.2「ファイル共有サービスのネットワーク優先度の設定」 と同様に、net_prio サブシステムはクライアントアプリケーション (例: Firefox) のネットワーク優先度設定に使用することができます。