Show Table of Contents

第 4 章 控制群组应用示例
本章将针对如何使用 cgroup 给出应用示例。
4.1. 定义数据库 I/O 的优先级
在数据库服务器专用的虚拟机内部运行数据库服务器实例,让您可以根据数据库的优先级来为其分配资源。请参考下列示例:系统在两个 KVM 虚拟机内部运行两个数据库服务器。一个数据库的优先级较高,另一个较低。当两个数据库服务器同时运行,I/O 吞吐量会降低来均等地容纳两个数据库的请求;如图 4.1 “不根据优先级分配资源时的 I/O 吞吐量” 所示:一旦优先级低的数据库启动(约在时间轴的 45 处),分配给两个服务器的 I/O 吞吐量是相同的。

图 4.1. 不根据优先级分配资源时的 I/O 吞吐量
为能优先处理来自优先级高的数据库服务器请求,可将此服务器分配给一个 I/O 操作预留量高的 cgroup,而优先级低的数据库服务器可以分配给一个 I/O 操作预留量少的 cgroup。可按照以下步骤过程 4.1, “I/O 吞吐量优先化”来完成此操作,这些步骤将全部在主机系统上执行。
过程 4.1. I/O 吞吐量优先化
- 请确保两项服务的所用资源统计功能,处于开启状态:
~]#
systemctlset-propertydb1.serviceBlockIOAccounting=true~]#systemctlset-propertydb2.serviceBlockIOAccounting=true - 如果将高优先级和低优先级服务的比率设定为 10:1 ,那么在这些服务单位中运行的进程将只能使用可用资源:
~]#
systemctlset-propertydb1.serviceBlockIOWeight=1000~]#systemctlset-propertydb2.serviceBlockIOWeight=100
图 4.2 “根据优先级分配资源时的 I/O 吞吐量” 显示了优先处理优先级高的数据库请求,而限制优先级低的数据库的情况。一旦数据库服务器移至恰当的 cgroup(约在时间轴的 75 处),I/O 吞吐量就会在两个服务器间按照 10:1 的比率分配。

图 4.2. 根据优先级分配资源时的 I/O 吞吐量
或者,块设备 I/O 流量调节功能,可对优先级低的数据库限定其读写操作量。更多信息,请参阅 〈kernel 管控器专项介绍〉对
blkio 管控器的介绍。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.