簡介
本文檔介紹在思科策略套件(CPS)群集中設定所需的系統負載平均閾值所需的永久更改。
必要條件
需求
本文件沒有特定需求。
思科建議您瞭解以下主題:
- Linux
- CPS平台和CPS集群架構
- 原則和計費規則功能(PCRF)
- Vi編輯器命令
採用元件
本檔案中的資訊是根據CPS 24.1版本和AlmaLinux 8.8版。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
Linux命令top 中的系統負載值(Load-1、Load-5、Load-15)表示每1分鐘、5分鐘和15分鐘取樣一次的VM中的負載平均值:
[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群集中各個VM中的期望值,從而可以為所配置的閾值生成HighLoad閾值交叉警報。但是,這些VM級更改不是持久的,在重新啟動VM後會還原為預設值。
作為標準過程,要使這些更改具有永續性,請使用CPS安裝指南中Enable Custom Puppet to Configure Deployment部分下定義的過程從Cluster Manager VM修改CPS群集VM木偶檔案。根據VM木偶檔案中的當前配置,這些值無法更改,並已固定為該值: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隻是指示性的。根據需要分配實際值。
保留這些更改的程式
要在puppet檔案中進行這些配置更改,建議使用Enable Custom Puppet to Configure Deployment部分中CPS安裝指南中提到的過程。
參考連結:
驗證
要使用新值驗證更改,請從群集管理器虛擬機器運行for循環命令:
for host in $(hosts-all.sh); do echo $host; ssh $host "cat /etc/snmp/snmpd.conf | grep load"; done