文章目录
- 60 KVM Skylark虚拟机混部-安装和配置
- 60.1 安装Skylark
- 60.1.1 硬件要求
- 60.1.2 软件要求
- 60.1.3 安装方法
- 60.2 配置Skylark
- 60.2.1 日志
- 60.2.2 功耗干扰控制
- 60.2.3 LLC/MB干扰控制
60 KVM Skylark虚拟机混部-安装和配置
60.1 安装Skylark
60.1.1 硬件要求
处理器架构:仅支持 AArch64 和 Intel x86_64 处理器架构。
- Intel 处理器需支持 RDT 功能。
- AArch64 当前仅支持 Kunpeng920,且需将 bios 升级到 1.79 及以上以支持 MPAM 功能。
60.1.2 软件要求
- 依赖 python3、python3-APScheduler、python3-libvirt 等 python 组件。
- 依赖 systemd 组件,版本 >= 249-32
- 依赖 libvirt 组件,版本 >= 1.0.5
- 依赖 openEuler 内核,版本 >= 5.10.0
60.1.3 安装方法
推荐使用 yum 安装 Skylark 组件,因为 yum 会自动处理上述软件依赖:
# yum install -y skylark
检查 Skylark 是否安装成功,若安装成功则会显示 skylarkd 后台服务状态:
# systemctl status skylarkd
设置 Skylark 服务开机自启动(可选):
# systemctl enable skylarkd
60.2 配置Skylark
安装好 Skylark 组件后,若默认配置不满足需求,可修改配置文件。Skylark 的配置文件路径为/etc/sysconfig/skylarkd
,下面对该配置文件包含的配置项作详细说明。
60.2.1 日志
LOG_LEVEL
用于设置最小日志级别,类型为字符串。所有可设置的日志级别及其关系为critical > error > warning > info > debug
。级别小于LOG_LEVEL
的日志将不会输出到日志文件。日志文件路径为/var/log/skylark.log
。Skylark 会每 7 天备份一次日志,最多备份 4 次(当次数超限时,会删除最旧的日志)。备份的日志路径为/var/log/skylark.log.%Y-%m-%d
。
60.2.2 功耗干扰控制
POWER_QOS_MANAGEMENT
用于控制是否打开功耗 QoS 管理功能,类型为布尔。当前仅 x86 支持该功能。如果主机上虚拟机的 CPU 利用率能被很好地限制,该功能可选。TDP_THRESHOLD
用于控制虚拟机可达到的最大功耗。当主机功耗超过TDP * TDP_THRESHOLD
时,将判断为出现 TDP 热点,触发功耗控制操作。类型为 float,可接受的输入范围为 0.8-1,默认值为 0.98。FREQ_THRESHOLD
用于控制当主机出现 TDP 热点时,CPU 运行的最低频率。类型为 float,可接受的输入范围为 0.9-1,默认值为 0.98。- 当存在某些 CPU 的频率低于
max_freq * FREQ_THRESHOLD
时,Skylark 会限制在这些 CPU 上运行的低优先级虚拟机的 CPU 带宽。 - 当找不到这样的 CPU,则 Skylark 也会根据低优先级虚拟机的 CPU 利用率情况,选择性限制某些低优先级虚拟机的 CPU 带宽。
- 当存在某些 CPU 的频率低于
QUOTA_THRESHOLD
用于控制低优先级虚拟机被限制后所能获得的 CPU 带宽(限制前的 CPU 带宽 *QUOTA_THRESHOLD
)。类型为 float,可接受的输入范围为 0.8-1,默认值为 0.9。ABNORMAL_THRESHOLD
用于控制低优先级虚拟机被限制的周期。类型为 int,可接受的输入范围为 1-5,默认值为 3。- 在每个功耗控制周期内,如果某个低优先级虚拟机被限制,其剩余被限制周期刷新为
ABNORMAL_THRESHOLD
。 - 否则其剩余被限制周期减 1。当虚拟机的剩余被限制周期等于 0 时,其 CPU 带宽恢复为被限制前的值。
- 在每个功耗控制周期内,如果某个低优先级虚拟机被限制,其剩余被限制周期刷新为
60.2.3 LLC/MB干扰控制
Skylark 对 LLC/MB 的干扰控制依赖于硬件使能 RDT/MPAM 功能,Intel x86_64 架构处理器需在内核 cmdline 配置rdt=cmt,mbmtotal,mbmlocal,l3cat,mba
,Kunpeng920 处理器需在内核 cmdline 配置mpam=acpi
。
MIN_LLC_WAYS_LOW_VMS
用于控制低优先级虚拟机可访问的 LLC ways。类型为 int,可接受的输入范围为 1-3,默认值为 2。Skylark 会在初始化时,限制低优先级虚拟机的 LLC ways 为该值。MIN_MBW_LOW_VMS
用于控制低优先级虚拟机可访问的内存带宽比例。类型为 float,可接受的输入范围为 0.1~0.2,默认值为 0.1。Skylark 会在初始化时,限制低优先级虚拟机的内存带宽为该值。
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!