4.4. 在使用 rate:mean 聚合时,对自动扩展阈值使用 CPU 遥测值
当使用 OS::Heat::Autoscaling
heat 编配模板 (HOT) 并为 CPU 设置阈值时,其代表以纳秒为单位的 CPU 时间,它是一个基于分配给实例工作负载虚拟 CPU 数量的动态值。在本指南中,我们将探索如何使用 Gnocchi rate:mean
aggregration 方法计算和表达 CPU 纳秒的值作为百分比。
4.4.1. 计算 CPU 遥测值作为百分比 复制链接链接已复制到粘贴板!
CPU 遥测存储在 Gnocchi (OpenStack 时间序列数据存储)中,以纳秒为单位的 CPU 使用率。当使用 CPU 遥测定义自动扩展阈值时,将值表示为 CPU 使用率百分比时,因为在定义阈值时更自然。当定义用作自动扩展组一部分的扩展策略时,我们可以取我们所需的阈值定义为百分比,并以纳秒为单位计算在策略定义中使用的纳秒。
值(ns) | 粒度(s) | 百分比 |
---|---|---|
60000000000 | 60 | 100 |
54000000000 | 60 | 90 |
48000000000 | 60 | 80 |
42000000000 | 60 | 70 |
36000000000 | 60 | 60 |
30000000000 | 60 | 50 |
24000000000 | 60 | 40 |
18000000000 | 60 | 30 |
12000000000 | 60 | 20 |
6000000000 | 60 | 10 |
4.4.2. 以百分比形式显示实例工作负载 vCPU 复制链接链接已复制到粘贴板!
您可以使用 openstack metric aggregates
命令显示 gnocchi-stored CPU 遥测数据的百分比,而不是实例的纳秒值。
先决条件
- 使用导致实例工作负载的自动缩放组资源创建 heat 堆栈。
流程
- 以云管理员身份登录到 OpenStack 环境。
检索自动缩放组 heat 堆栈的 ID:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将堆栈 ID 的值设置为环境变量:
export STACK_ID=$(openstack stack show vnf -c id -f value)
$ export STACK_ID=$(openstack stack show vnf -c id -f value)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据资源类型实例(服务器 ID)的聚合返回指标,其值计算为百分比。聚合以纳秒 CPU 时间返回。我们对该数量划分为 1000000000,以以秒为单位获取值。然后,我们根据粒度划分该值,本例中为 60 秒。然后,该值通过乘以 100 的多点转换为百分比。最后,我们根据分配给实例的类别提供的 vCPU 数量除以 2 个 vCPU 值,为我们提供一个 CPU 时间百分比表示的值:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.3. 为实例工作负载检索可用的遥测 复制链接链接已复制到粘贴板!
检索实例工作负载的可用遥测,并以百分比表示 vCPU 使用率。
先决条件
- 使用导致实例工作负载的自动缩放组资源创建 heat 堆栈。
流程
- 以云管理员身份登录到 OpenStack 环境。
检索自动缩放组 heat 堆栈的 ID:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将堆栈 ID 的值设置为环境变量:
export STACK_ID=$(openstack stack show vnf -c id -f value)
$ export STACK_ID=$(openstack stack show vnf -c id -f value)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索您要返回数据的工作负载实例的 ID。我们使用服务器列表长形式并过滤作为我们自动扩展组一部分的实例:
openstack server list --long --fit-width | grep "metering.server_group='$STACK_ID'"
$ openstack server list --long --fit-width | grep "metering.server_group='$STACK_ID'" | bc1811de-48ed-44c1-ae22-c01f36d6cb02 | vn-xlfb4jb-yhbq6fkk2kec-qsu2lr47zigs-vnf-y27wuo25ce4e | ACTIVE | None | Running | private=192.168.100.139, 192.168.25.179 | fedora36 | d21f1aaa-0077-4313-8a46-266c39b705c1 | m1.small | 692533fe-0912-417e-b706-5d085449db53 | nova | standalone.localdomain | metering.server_group='e0a15cee-34d1-418a-ac79-74ad07585730' |
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为返回的实例工作负载名称设置实例 ID:
INSTANCE_NAME='vn-xlfb4jb-yhbq6fkk2kec-qsu2lr47zigs-vnf-y27wuo25ce4e' ; export INSTANCE_ID=$(openstack server list --name $INSTANCE_NAME -c ID -f value)
$ INSTANCE_NAME='vn-xlfb4jb-yhbq6fkk2kec-qsu2lr47zigs-vnf-y27wuo25ce4e' ; export INSTANCE_ID=$(openstack server list --name $INSTANCE_NAME -c ID -f value)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证已存储了实例资源 ID 的指标。如果没有可用的指标,则在实例创建后可能没有足够的时间。如果有足够的时间,您可以检查
/var/log/containers/ceilometer/
中数据收集服务的日志,并在/var/log/containers/gnocchi/
中检查时间序列数据库服务 gnocchi 的日志:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证资源指标是否有可用的措施,并记录在运行
openstack metric aggregates
命令时所使用的粒度值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过查看实例工作负载的配置类别来检索应用到工作负载实例的 vCPU 内核数:
openstack server show $INSTANCE_ID -cflavor -f value openstack flavor show 692533fe-0912-417e-b706-5d085449db53 -c vcpus -f value
$ openstack server show $INSTANCE_ID -cflavor -f value m1.small (692533fe-0912-417e-b706-5d085449db53) $ openstack flavor show 692533fe-0912-417e-b706-5d085449db53 -c vcpus -f value 2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据资源类型实例(服务器 ID)的聚合返回指标,其值计算为百分比。聚合以纳秒 CPU 时间返回。我们对该数量划分为 1000000000,以以秒为单位获取值。然后,我们根据粒度划分值,本例中为 60 秒(如之前通过
openstack metric measure show
命令获得)。然后,该值通过乘以 100 的多点转换为百分比。最后,我们根据分配给实例的类别提供的 vCPU 数量除以 2 个 vCPU 值,为我们提供一个 CPU 时间百分比表示的值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow