Red Hat Training

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

第4章 コントロールグループアプリケーションの例

本章では、cgroup の機能を活用した適用例について説明します。

4.1. データベース I/O の優先順位設定

独自の専用仮想ゲスト内でデータベースサーバーの各インスタンスを実行すると、その優先順位に基づいてデータベースごとにリソースを割り当てることができます。以下の例は、2 つの KVM ゲスト内で 2 つのデータベースサーバーを実行しているとします。データベースの 1 つが優先度の高いデータベースであり、もう 1 つは優先度の低いデータベースです。両方のデータベースサーバーが同時に実行する場合は、I/O 図4.1「リソースの割り当てなしで I/O スループット」、優先度の低いデータベースが起動したら(約 time 45)、I/O スループットは両データベースサーバーで同じです。

図4.1 リソースの割り当てなしで I/O スループット

リソースの割り当てなしで I/O スループット
優先度の高いデータベースサーバーを優先するには、予約済み I/O 操作が多数ある cgroup に割り当てることができます。また、優先度の低いデータベースサーバーは、予約済み I/O 操作の数が少ない cgroup に割り当てることができます。手順4.1「I/O スループット優先化」、ホストシステム ですべての手順を実行します。

手順4.1 I/O スループット優先化

  1. リソースアカウンティングが両方のサービスであることを確認してください。
    ~]# systemctl set-property db1.service BlockIOAccounting=true
    ~]# systemctl set-property db2.service BlockIOAccounting=true
  2. 優先度が高いサービスに対する 10:1 の比率を設定します。これらのサービスユニットで実行しているプロセスは、
    ~]# systemctl set-property db1.service BlockIOWeight=1000
    ~]# systemctl set-property db2.service BlockIOWeight=100
図4.2「リソース割り当てを使用した I/O スループット」 では、優先順位の低いデータベースの制限と、優先度の高いデータベースの優先順位付けの結果を示しています。データベースサーバーが適切な cgroups(約 75)に移行するとすぐに、I/O スループットは両方のサーバー間で分割され、10:1 の比率で I/O スループットに分割されます。

図4.2 リソース割り当てを使用した I/O スループット

リソース割り当てを使用した I/O スループット
または、優先度の低いデータベースに対してブロックデバイス I/O スロットリングを使用して、その読み取り操作および書き込み操作の数を制限することもできます。詳細は、blkio コントローラーの説明を参照してください コントローラー固有のカーネルドキュメント