Node Overload
The node overload refers to the resource utilization data of all the SMF pods in the NF deployment. The SMF periodically gathers the current resource utilization data for these pods. The default frequency to read the resource utilization data is 5 seconds. The SMF monitors the CPU, memory utilization, go-routines, and stores the average values for the current, last 5 minutes and 15 minutes for the pods.
Pod Level Load Factor
The maximum values against the current values for CPU, memory utilization and go-routines for a pod are used to calculate its load factor. The GOMAXPROCS environment variable is used to calculate the capacity of a pod. The maximum value per core is defined with constant values, which is used to derive the capacity of CPU, memory and go-routines.
An example of the maximum value per core is show below.
MAX_CPU_PERCENTAGE_PER_CORE = 100
MAX_MEMORY_PER_CORE = 4 GB
MAX_GO_ROUTINE_PER_CORE = 10,000The NewApplicationWithOptions is used to get the maximum values. If the values are not provided by the application, then the default values are used.
The load factor for a pod is calculated as follows:
-
CPU load factor = Current load percentage / Maximum load percentage at pod x 100
-
Memory load factor = Current memory usage / Maximum memory at pod x 100
-
Go-routine load factor = Go-routine count / Maximum Go-routine count at pod x 100
The maximum value from the CPU, memory and go-routines load factors is considered as the final load factor.
Self-NF Load Factor from an OAM Pod
The OAM pod periodically gathers the load factor data from each SMF pod and updates the cache pod. The OAM pod also receives the session load factor from the CDL and updates the cache pod at the same time.
The system APIs provide the load factor data based on the following logic:
-
Pod level load factor - If an application queries the load factor for a pod to get its resource utilization data in the SMF, then the response contains the maximum load factor for all the pod type categories in that cluster.
-
System level load factor - If an application queries the load factor at the system level, then the response contains the maximum load factor for all the pods in that cluster along with the session load factor data.
-
Load factor based on a category - If an application queries the load factor for a specific type of service like, smf-service, smf-rest-ep, and so on, then the following conditions are met:
-
Active-Active deployment - The query response contains the average value of the load factors.
-
Active-Standby deployment - The query response contains the maximum value of the load factors.
-
A system level capacity to handle the number of sessions is configured in the SMF. The load factor for each session is calculated in the OAM pod as the Current session count / Maximum number of sessions.
Maximum Sessions
A datastore configuration is used to include the session load factor for supported namespaces. The values must be set from the application while registering the session database. If the value is not set, then the default 1,000,000 is used to calculate the session load factor.
Application level ConfigMap Support for OAM
The OAM infra chart mounts the configmaps from the OAM application in the following ways:
-
Infra-OAM
-
Update template to add volumes for configuration maps from render.yaml.
-
Update template to mount volumes from render.yaml by using volumeMounts.
-
-
Application-OAM
-
Add configuration map with the same in application configuration chart.
-
Provide values from Values.yaml or from CLI for the configuration map.
-