简介
本文档介绍在思科策略套件(CPS)群集中设置所需的虚拟机系统负载平均阈值所需的永久更改。
先决条件
要求
本文档没有任何特定的要求。
Cisco 建议您了解以下主题:
- Linux
- CPS平台和CPS集群架构
- 策略和计费规则功能(PCRF)
- Vi编辑器命令
使用的组件
本文档中的信息基于CPS 24.1版本和AlmaLinux 8.8版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
Linux命令top中的系统负载值(Load-1、Load-5、Load-15)表示每1分钟、5分钟和15分钟采样一次的虚拟机的负载平均值:
[root@HOSTNAME-VM01 ~]# top
top - 20:23:21 up 10 days, 2:11, 1 user, load average: 5.12, 8.67, 8.56
Tasks: 432 total, 2 running, 425 sleeping, 0 stopped, 5 zombie
%Cpu(s): 8.2 us, 3.3 sy, 0.0 ni, 87.2 id, 0.2 wa, 0.9 hi, 0.2 si, 0.0 st
MiB Mem : 63884.1 total, 23587.4 free, 11090.1 used, 29206.5 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 48924.5 avail Mem
通过编辑CPS群集中各个VM中的/etc/snmp/snmpd.conf,可以将这三个采样间隔的阈值修改为CPS群集中虚拟机的期望值,以便可以为配置的阈值生成HighLoad阈值交叉警报。但是,这些VM级更改不是永久性的,在VM重新启动后会恢复为默认值。
作为标准过程,要使这些更改具有持久性,请使用CPS安装指南中Enable Custom Puppet to Configure Deployment部分下定义的过程从Cluster Manager VM修改CPS集群VM木偶文件。根据VM puppet文件中的当前配置,这些值无法更改并且已固定为该值:1.5 * vCPU数量(分配给VM)。
本文档中提到了配置更改,以持续地将此默认逻辑修改为所需的HighLoad阈值。
问题
Cluster Manager VM中的CPS群集VM(LB VM、Sessionmgr VM、Pcrfclient VM和QNS VM)傀儡文件位于以下路径:/etc/puppet/modules/qps/templates/etc/snmp:
pcrfclient.snmpd.conf
lb.snmpd.conf
sessionmgr.snmpd.conf
qns.snmpd.conf
默认情况下,它采用静态配置来确定HighLoad阈值:
<% @load_val=`nproc | awk '{res = $1 * 1.5; printf "%d", res}'` %>
load <%= @load_val %> <%= @load_val %> <%= @load_val %>
这表示默认阈值为1.5 *每个时间段的vCPU数量(分配给VM)。因此,由于这种静态配置,不能为所有三个时间段设置所需的平均阈值。
解决方案
修改各VM snmpd.conf傀儡文件中给定的默认静态配置,如下所示:
<% @load_val=`nproc | awk '{res = $1 * 1.5; printf "%d", res}'` %>
load <%= @load_val %> <%= @load_val %> <%= @load_val %>
<% @load_val_1 = 55 %>
<% @load_val_2 = 55 %>
<% @load_val_3 = 36 %>
load <%= @load_val_1 %> <%= @load_val_2 %> <%= @load_val_3 %>
注意:这里,值55、55和36仅是指示性的。根据需要分配实际值。
保留这些更改的程序
要在木偶文件中进行这些配置更改,建议使用Enable Custom Puppet to Configure Deployment部分中CPS安装指南中提到的过程。
参考链接:
确认
要使用新值验证更改,请从集群管理器VM运行for循环命令:
for host in $(hosts-all.sh); do echo $host; ssh $host "cat /etc/snmp/snmpd.conf | grep load"; done