Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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

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

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

  1. net_prio コントローラーはカーネルにコンパイルされません。これは手動で読み込む必要のあるモジュールです。これを実行するには、以下を入力します。
    ~]# modprobe netprio_cgroup
  2. net_prio サブシステムを /cgroup/net_prio cgroup に接続します。
    ~]# mkdir sys/fs/cgroup/net_prio
    ~]# mount -t cgroup -o net_prio none sys/fs/cgroup/net_prio
  3. サービスごとに 2 つの cgroup を作成します。
    ~]# mkdir sys/fs/cgroup/net_prio/nfs_high
    ~]# mkdir sys/fs/cgroup/net_prio/samba_low
  4. nfs_high cgroup に nfs サービスを自動的に移動するには、/etc/sysconfig/nfs ファイルに以下の行を追加します。
    CGROUP_DAEMON="net_prio:nfs_high"
    この設定により、nfs サービスが起動または再起動する際に nfs サービスプロセスが nfs_high cgroup に確実に移動します。
  5. 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 に移動させるルールを定義することができます。
  6. cgred サービスを起動して、前の手順からの設定を読み込みます。
    ~]# systemctl start cgred
    Starting CGroup Rules Engine Daemon:                       [  OK  ]
    
  7. この例では、両方のサービスが eth1 ネットワークインターフェースを使用していることを前提とします。各 cgroup にネットワークの優先度を定義します。ここで 1 は優先度が低く、10 は優先度が高いことを示します。
    ~]# echo "eth1 1" > /sys/fs/cgroup/net_prio/samba_low/net_prio.ifpriomap
    ~]# echo "eth1 10" > /sys/fs/cgroup/net_prio/nfs_high/net_prio.ifpriomap
  8. nfs および smb サービスを起動し、それらのプロセスが正しい cgroup に移動したことを確認します。
    ~]# systemctl start smb
    Starting SMB services:                                     [  OK  ]
    ~]# cat /sys/fs/cgroup/net_prio/samba_low/tasks
    16122
    16124
    ~]# systemctl start nfs
    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 sys/fs/cgroup/net_prio/nfs_high/tasks
    16321
    16325
    16376
    
    NFS から発信されるネットワークトラフィックの優先度が、Samba から発信されるトラフィックよりも高くなりました。
手順4.2「ファイル共有サービスのネットワーク優先度の設定」 と同様に、net_prio サブシステムはクライアントアプリケーション (例: Firefox) のネットワーク優先度設定に使用することができます。