60 KVM Skylark虚拟机混部-安装和配置

193 阅读3分钟

60 KVM Skylark虚拟机混部-安装和配置60.1 安装Skylark60.1.1 硬件要求60.1.2 软件要求60.1.3 安装方法60.2 配置Skylark60.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。

    1. 当存在某些 CPU 的频率低于max_freq * FREQ_THRESHOLD时,Skylark 会限制在这些 CPU 上运行的低优先级虚拟机的 CPU 带宽。
    2. 当找不到这样的 CPU,则 Skylark 也会根据低优先级虚拟机的 CPU 利用率情况,选择性限制某些低优先级虚拟机的 CPU 带宽。
  • QUOTA_THRESHOLD用于控制低优先级虚拟机被限制后所能获得的 CPU 带宽(限制前的 CPU 带宽 * QUOTA_THRESHOLD)。类型为 float,可接受的输入范围为 0.8-1,默认值为 0.9。

  • ABNORMAL_THRESHOLD用于控制低优先级虚拟机被限制的周期。类型为 int,可接受的输入范围为 1-5,默认值为 3。

    1. 在每个功耗控制周期内,如果某个低优先级虚拟机被限制,其剩余被限制周期刷新为ABNORMAL_THRESHOLD
    2. 否则其剩余被限制周期减 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 会在初始化时,限制低优先级虚拟机的内存带宽为该值。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

1.png