4.2. ネットワークトラフィックの優先度設定
単一のサーバーシステムでネットワーク関連サービスを複数実行している場合には、それらのサービス間におけるネットワークの優先度を定義することが重要です。これらの優先度を定義することにより、特定のサーバーから発信されるパッケージの優先度を、その他のサービスから発信されるパッケージよりも優先度を高くすることができます。たとえば、そのような優先度は、サーバーシステムが同時に NFS および Samba サーバーとして機能する場合に役立ちます。NFS のトラフィックは、ユーザーが高スループットを期待するので、優先度を高くする必要があります。Samba のトラフィックは、NFS サーバーのパフォーマンスを向上させるために、優先度を低くすることができます。
net_prio サブシステムを使用して、cgroup 内のプロセスの優先順位を設定することができます。次に、これらの優先度が Type Of Service (TOS) ビットに変換され、各パケットに埋め込まれます。二つのファイル共有サービス (NFS と Samba) の優先度を設定するには、手順4.2「ファイル共有サービスのネットワーク優先度の設定」 の手順にしたがってください。
手順4.2 ファイル共有サービスのネットワーク優先度の設定
net_prioサブシステムを/cgroup/net_priocgroup に接続します。~]# mkdir /cgroup/net_prio ~]# mount -t cgroup -o net_prio net_prio /cgroup/net_prio- サービスごとに 2 つの cgroup を作成します。
~]# mkdir /cgroup/net_prio/nfs_high ~]# mkdir /cgroup/net_prio/samba_low nfs_highcgroup にnfsを自動的に移動するには、/etc/sysconfig/nfsファイルに以下の行を追加します。CGROUP_DAEMON="net_prio:nfs_high"この設定は、nfsサービスが起動または再起動された時に、nfsサービスプロセスがnfs_highcgroup に移動するようにします。cgroup への サービスプロセス移動についての詳細は、「コントロールグループ内のサービスの開始」 を参照してください。smbdデーモンの設定ファイルは/etc/sysconfigディレクトリにはありません。smbdデーモンをsamba_lowcgroup に自動的に移動するには、/etc/cgrules.confファイルに以下の行を追記してください。*:smbd net_prio samba_lowこのルールにより、/usr/sbin/smbdのみではなく、すべてのsmbdデーモンがsamba_lowcgroup に移動する点に注意してください。同様に、nmbdおよびwinbinddデーモンをsamba_lowcgroup に移動させるルールを定義することができます。cgredサービスを起動して、前の手順からの設定を読み込みます。~]# service cgred start Starting CGroup Rules Engine Daemon: [ OK ]- この例では、両サービスが
eth1ネットワークインターフェースを使用していることを前提とします。各 cgroup にネットワークの優先度を定義します。ここで1優先度低く、10は優先度が高い数値を示します。~]# echo "eth1 1" > /cgroup/net_prio/samba_low ~]# echo "eth1 10" > /cgroup/net_prio/nfs_high 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 16376NFS から発信されるネットワークトラフィックの優先度が、Samba から発信されるトラフィックよりも高くなりました。
手順4.2「ファイル共有サービスのネットワーク優先度の設定」 と同様に、
net_prio サブシステムはクライアントアプリケーション (例: Firefox) のネットワーク優先度設定に使用することができます。