3 Benchmarking Policy Call Models
This section describes different Policy call models and the performance test scenarios which were run using these call model.
3.1 CnPCRF Call Models
The following diagram describes the architecture for a multisite CnPCRF deployment.
Figure 3-1 CnPCRF 4 Site GR Deployment Architecture

Note:
This diagram is only for representation purpose.3.1.1 Test Scenario: CnPCRF Data Call Model on Four-Site GeoRedundant setup, with 30K TPS per NFSet (with 7.5K TPS on each instance)
This test run benchmarks the performance and capacity of CnPCRF data call model that is deployed in converged mode on a four-site georedundant setup. Each site in the setup handles an incoming traffic of 7.5K TPS.
3.1.1.1 Test Case and Setup Details
Test Case Parameters
Table 3-1 Test Case Parameters
| Parameters | Values |
|---|---|
| Call Rate | 30K TPS (7.5K TPS on each site) |
| Execution Time | 12 Hours |
| ASM | Disable |
Table 3-2 Call Model Data
| Messages | Total CPS Instance-1 | sy Traffic | Ldap Traffic | Total TPS |
|---|---|---|---|---|
| CCR-I | 320 | 320 | 320 | 960 |
| CCR-U | 320 | 0 | 0 | 320 |
| CCR-T | 320 | 320 | 0 | 640 |
| Total Messages | 960 | 640 | 320 | 1920 |
Table 3-3 CnPCRF Configurations
| Service Name | Status |
|---|---|
| Binding Service | Disable |
| Policy Event Record (PER) | Disable |
| Subscriber Activity Log (SAL) | Enable |
| LDAP | Enable |
| Online Charging System (OCS) | Enable |
Table 3-4 PCF Interfaces
| Feature Name | Status |
|---|---|
| N36 UDR query (N7/N15-Nudr) | Disable |
| N36 UDR subscription (N7/N15-Nudr) | Disable |
| UDR on-demand nrf discovery | Disable |
| CHF (SM-Nchf) | Disable |
| BSF (N7-Nbsf) | Disable |
| AMF on demand nrf discovery | Disable |
| LDAP (Gx-LDAP) | Enable |
| Sy (PCF N7-Sy) | Enable |
Table 3-5 PCRF Interfaces
| Feature Name | Status |
|---|---|
| Sy (PCRF Gx-Sy) | Enable |
| Sd (Gx-Sd) | Disable |
| Gx UDR query (Gx-Nudr) | Disable |
| Gx UDR subscription (Gx-Nudr | Disable |
| CHF enabled (AM) | Disable |
| Usage Monitoring (Gx) | Disable |
| Subscriber HTTP Notifier (Gx) | Disable |
Table 3-6 Configuring cnDBTier Helm Parameters
| Helm Parameter | New Value |
|---|---|
| ndb_batch_size | 2G |
| TimeBetweenEpochs | 100 |
| NoOfFragmentLogFiles | 50 |
| FragmentLogFileSize | 256M |
| RedoBuffer | 1024M |
| ndbappmysqld Pods Memory | 19/20 Gi |
| ndbmtd pods CPU | 8/8 |
| ndb_report_thresh_binlog_epoch_slip | 50 |
| ndb_eventbuffer_max_alloc | 19G |
| ndb_log_update_minimal | 1 |
| ndbmysqld Pods Memory | 25/25 Gi |
| replicationskiperrors | enable: true |
| replica_skip_errors | '1007,1008,1050,1051,1022' |
| numOfEmptyApiSlots | 4 |
Infrastructure Details
Table 3-7 Software Details
| Applications | Versions |
|---|---|
| Policy | 24.1.0 |
| cnDBTier | 24.1.0 |
| ASM | Disabled |
| CNE | 23.3.3 |
| CNC Console | 24.1.0 |
Table 3-8 Observability Services
| Service Names | Versions |
|---|---|
| OpenSearch | 2.3.0 |
| Fluentd | 1.16.2 |
| Prometheus | 2.51.1 |
| Grafana | 9.5.3 |
| Jaeger | 1.52.0 |
For more information about Policy Installation, see Oracle Communications Cloud Native Core, Converged Policy Installation, Upgrade, and Fault Recovery Guide.
Table 3-9 Hardware Details
| Hardware | Details |
|---|---|
| Environment | Hypervisor |
| Server | ORACLE SERVER X8-2 |
| Model | Intel(R) Xeon(R) Platinum 8260 CPU |
| Clock Speed | 2.400 GHz |
| Total Cores | 96 |
| Memory Size | 576 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 18 |
| Maximum DIMMs | 24 |
| Installed Memory | 576 GB |
Resource Allocation
Table 3-10 Resource Allocation for Policy Microservices
| Service Name | CPU Request Per Pod | CPU Limit Per Pod | Memory Request Per Pod (Gi) | Memory Limit Per Pod (Gi) | ReplicaMin Replica = Max Replica |
|---|---|---|---|---|---|
| ocpcf-appinfo | 1 | 1 | 0.5 | 1 | 1 |
| ocpcf-oc-binding | 5 | 6 | 1 | 8 | 15 |
| ocpcf-oc-diam-connector | 3 | 4 | 1 | 2 | 8 |
| ocpcf-oc-diam-gateway | 3 | 4 | 1 | 2 | 7 |
| ocpcf-occnp-config-server | 2 | 4 | 0.5 | 2 | 1 |
| ocpcf-occnp-egress-gateway | 3 | 4 | 4 | 6 | 2 |
| ocpcf-ocpm-ldap-gateway | 3 | 4 | 1 | 2 | 10 |
| ocpcf-occnp-ingress-gateway | 3 | 4 | 4 | 6 | 2 |
| ocpcf-occnp-nrf-client-nfdiscovery | 3 | 4 | 0.5 | 2 | 2 |
| ocpcf-occnp-nrf-client-nfmanagement | 1 | 1 | 1 | 1 | 2 |
| ocpcf-ocpm-audit-service | 1 | 2 | 1 | 1 | 1 |
| ocpcf-ocpm-cm-service | 2 | 4 | 0.5 | 2 | 1 |
| ocpcf-ocpm-policyds | 5 | 6 | 1 | 4 | 25 |
| ocpcf-ocpm-pre | 5 | 5 | 0.5 | 4 | 25 |
| ocpcf-ocpm-queryservice | 1 | 2 | 1 | 1 | 1 |
| ocpcf-pcf-smservice | 7 | 8 | 1 | 4 | 2 |
| ocpcf-pcrf-core | 7 | 8 | 8 | 8 | 30 |
| ocpcf-performance | 1 | 1 | 0.5 | 1 | 2 |
Table 3-11 Resource Allocation for cnDBTier Services
| Service Name | CPU Request Per Pod | CPU Limit Per Pod | Memory Request Per Pod (Gi) | Memory Limit Per Pod (Gi) | ReplicaMin Replica = Max Replica |
|---|---|---|---|---|---|
| ndbappmysqld | 8 | 8 | 19 | 20 | 5 |
| ndbmgmd | 2 | 2 | 9 | 11 | 2 |
| ndbmtd | 8 | 8 | 73 | 83 | 8 |
| ndbmysqld | 4 | 4 | 19 | 20 | 12 |
3.1.1.2 Results
CPU and Memory Utilization
This section lists the CPU utilization by Policy and cnDBTier microservices. The CPU utilization is the ratio between the (total CPU utilization against total CPU request (X)) versus (target CPU Utilization (Y) configured for the Pod).
Table 3-12 CPU/Memory Utilization by Policy Microservices
| Service | CPU (X/Y) - Site 1 | CPU (X/Y)- Site 2 | CPU(X/Y) - Site 3 | CPU(X/Y) - Site 4 |
|---|---|---|---|---|
| ocpcf-alternate-route | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ocpcf-appinfo | 1%/80% | 2%/80% | 2%/80% | 3%/80% |
| ocpcf-occnp-config-server | 10%/80% | 11%/80% | 12%/80% | 12%/80% |
| ocpcf-oc-diam-connector | 10%/40% | 11%/40% | 10%/40% | 10%/40% |
| ocpcf-occnp-egress-gateway | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ocpcf-occnp-ingress-gateway | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ocpcf-ocpm-ldap-gateway | 4%/60% | 4%/60% | 5%/60% | 4%/60% |
| ocpcf-occnp-nrf-client-nfdiscovery | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ocpcf-occnp-nrf-client-nfmanagement | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ocpcf-oc-binding | 0%/60% | 0%/60% | 0%/60% | 0%/60% |
| ocpcf-occnp-chf-connector | 0%/50% | 0%/50% | 0%/50% | 0%/50% |
| ocpcf-occnp-udr-connector | 0%/50% | 0%/50% | 0%/50% | 0%/50% |
| ocpcf-ocpm-audit-service | 0%/60% | 0%/60% | 0%/60% | 0%/60% |
| ocpcf-ocpm-policyds | 11%/60% | 11%/60% | 11%/60% | 11%/60% |
| ocpcf-ocpm-soapconnector | 0%/60% | 0%/60% | 0%/60% | 0%/60% |
| ocpcf-ocpm-pre | 13%/80% | 13%/80% | 13%/80% | 13%/80% |
| ocpcf-pcf-smservice | 0%/50% | 0%/50% | 0%/50% | 0%/50% |
| ocpcf-pcrf-core | 7%/40% | 7%/40% | 7%/40% | 7%/40% |
| ocpcf-ocpm-queryservice | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
Table 3-13 CPU and Memory Utilization by cnDBTier Services
| Name | CPU (X/Y) - Site 1 | CPU (X/Y) - Site 2 | CPU (X/Y) - Site 3 | CPU (X/Y) - Site 4 |
|---|---|---|---|---|
| ndbappmysqld | 35%/80% | 36%/80% | 35%/80% | 35%/80% |
| ndbmgmd | 1%/80% | 1%/80% | 0%/80% | 0%/80% |
| ndbmtd | 15%/80% | 15%/80% | 18%/80% | 17%/80% |
| ndbmysqld | 5%/80% | 5%/80% | 5%/80% | 5%/80% |
Latency
Table 3-14 Average CnPCRF Core JDBC Latency Observations (in ms)
| Site 1 | Site 2 | Site 3 | Site 4 |
|---|---|---|---|
| 2.30 ms | 2.20 | 2.66 | 2.85 |
3.1.2 Test Scenario: CnPCRF Voice Call Model on Four-Site Georedundant Setup, with 30K TPS per NFSet (with 7.5K TPS on each instance)
This test run benchmarks the performance and capacity of CnPCRF voice call model that is deployed in converged mode on a four-site georedundant setup. Each of the sites handles a traffic of 7.5K TPS at Diameter Gateway. For this setup, Policy Event Record (PER) and Binding feature were enabled. This setup has single-channel replication.
3.1.2.1 Test Case and Setup Details
Test Case Parameters
Table 3-15 Test Case Parameters
| Parameters | Values |
|---|---|
| Call Rate (Diameter Gateway) | 30K TPS (7.5KTPS on four site) |
| ASM | Disable |
| Traffic Ratio | CCRI-I, AARI –1, CCRU-2, AARU - 1, RAR-Gx-1, RAR-Rx-1, STR –1, CCRT-1. |
| Active Subscribers | 10000000 |
Project Details
The Policy Design editor based on the Blockly interface was used to set the Policy project for each of the Policy services. The complexity level of Policy Project configured for this run was High.
Complexity Level Definition:
- Low – No usage of loops in Blockly logic, no JSON operations, and no complex Java Script code in object expression/statement expression.
- Medium – Usage of loops in Blockly logic, Policy table wildcard match <= 3 fields, MatchList < 3, and 3 < RegEx match < 6
- High – JSON Operations – Custom, complex Java script code in object Expression/statement expression, Policy table wildcard match > 3 fields, MatchLists >= 3, and RegEx mat >= 6
CnPCRF Configurations
The following CnPCRF services/features/databases were either enabled or disabled to run this call flow:
Table 3-16 CnPCRF Configurations
| Service Name | Status |
|---|---|
| Binding | Enabled |
| PRE | Enabled |
| SAL | Enabled |
| LDAP | Disabled |
| OCS | Disabled |
| Audit | Enabled |
| Replication | Enabled |
| Bulwark | Disabled |
| Alternate routing | Disabled |
Table 3-17 Policy Interfaces
| Feature Name | Status |
|---|---|
| AMF on demand nrf discovery | NA |
| BSF (N7-Nbsf) | NA |
| CHF (SM-Nchf) | NA |
| LDAP (Gx-LDAP) | NA |
| N36 UDR query (N7/N15-Nudr) | NA |
| N36 UDR subscription (N7/N15-Nudr) | NA |
| Sy (PCF N7-Sy) | NA |
| UDR on-demand nrf discovery | NA |
Table 3-18 PCRF Interfaces
| Feature Name | Status |
|---|---|
| Sy (PCRF Gx-Sy) | NA |
| Sd (Gx-Sd) | NA |
| Gx UDR query (Gx-Nudr) | NA |
| Gx UDR subscription (Gx-Nudr) | NA |
| CHF enabled (AM) | NA |
| Usage Monitoring (Gx) | NA |
| Subscriber HTTP Notifier (Gx) | NA |
Infrastructure Details
Table 3-19 Software Details
| Applications | Versions |
|---|---|
| Policy | 24.1.0 |
| cnDBTier | 24.1.0 |
| ASM | Disabled |
| CNE | 23.3.3 |
| CNC Console | 24.1.0 |
Table 3-20 Observability Services
| Services | Versions |
|---|---|
| OpenSearch | 2.3.0 |
| Fluentd | 1.16.2 |
| Prometheus | 2.51.1 |
| Grafana | 9.5.3 |
| Jaeger | 1.52.0 |
For more information about Policy Installation, see Oracle Communications Cloud Native Core, Converged Policy Installation, Upgrade, and Fault Recovery Guide.
Table 3-21 Hardware Details
| Hardware | Details |
|---|---|
| Environment | Hypervisor |
| Server | ORACLE SERVER X8-2 |
| Model | Intel(R) Xeon(R) Platinum 8260 CPU |
| Clock Speed | 2.400 GHz |
| Total Cores | 96 |
| Memory Size | 576 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 18 |
| Maximum DIMMs | 24 |
| Installed Memory | 576 GB |
Resource Allocation
The following table describes the resource capacity allocated to the Policy microservices:Table 3-22 Resource Allocation for Policy Microservices
| Service Name | CPU Request Per Pod | CPU Limit Per Pod | Memory Request Per Pod (Gi) | Memory Limit Per Pod (Gi) | Replicas |
|---|---|---|---|---|---|
| Appinfo | 1 | 2 | 1 | 2 | 1 |
| Audit Service | 1 | 2 | 1 | 1 | 1 |
| CM Service | 2 | 4 | 0.5 | 2 | 1 |
| Config Service | 2 | 4 | 0.5 | 2 | 1 |
| Egress Gateway | 5 | 5 | 6 | 6 | 2 |
| Ingress Gateway | 3 | 4 | 4 | 6 | 2 |
| Nrf Client Management | 1 | 1 | 1 | 1 | 2 |
| Diameter Gateway | 3 | 4 | 1 | 2 | 9 |
| Diameter Connector | 3 | 4 | 1 | 2 | 5 |
| Nrf Client Discovery | 3 | 4 | 0.5 | 2 | 2 |
| Query Service | 1 | 2 | 1 | 1 | 1 |
| PCRF Core Service | 7 | 8 | 8 | 8 | 24 |
| Performance | 1 | 1 | 0.5 | 1 | 2 |
| PRE Service | 4 | 4 | 0.5 | 4 | 15 |
| SM Service | 7 | 7 | 10 | 10 | 2 |
| PDS | 7 | 7 | 8 | 8 | 5 |
| Binding Service | 5 | 6 | 1 | 8 | 18 |
Table 3-23 Resource Allocation for cnDBTier Services
| Service Name | CPU Request Per Pod | CPU Limit Per Pod | Memory Request Per Pod (Gi) | Memory Limit Per Pod (Gi) | ReplicasMin Replica = Max Replica |
|---|---|---|---|---|---|
| ndbappmysqld | 8 | 8 | 19 | 20 | 5 |
| ndbmgmd | 2 | 2 | 9 | 11 | 2 |
| ndbmtd | 8 | 8 | 73 | 83 | 8 |
| ndbmysqld | 4 | 4 | 25 | 25 | 6 |
3.1.2.2 Results
CPU and Memory Utilization
This section lists the CPU and memory utilization by Policy and cnDBTier microservices. The CPU utilization is the ratio between the (total CPU utilization against total CPU request (X)) versus (target CPU Utilization (Y) configured for the pod).
Table 3-24 CPU/Memory Utilization by Policy Microservices
| Service Name | Site 1 CPU (X/Y) | Site 2 CPU (X/Y) | Site 3 CPU (X/Y) | Site 4 CPU (X/Y) |
|---|---|---|---|---|
| ocpcf-appinfo-hpa-v2 | 3%/80% | 3%/80% | 3%/80% | 3%/80% |
| ocpcf-config-server-hpa-v2 | 8%/80% | 9%/80% | 7%/80% | 7%/80% |
| ocpcf-diam-connector-hpa | 0%/40% | 0%/40% | 0%/40% | 0%/40% |
| ocpcf-egress-gateway-v2 | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ocpcf-ingress-gateway-v2 | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ocpcf-nrf-client-nfdiscovery-v2 | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ocpcf-nrf-client-nfmanagement-v2 | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ocpcf-oc-binding-hpa | 6%/60% | 6%/60% | 6%/60% | 6%/60% |
| ocpcf-ocpm-audit-service-hpa-v2 | 4%/60% | 1%/60% | 1%/60% | 1%/60% |
| ocpcf-ocpm-policyds-hpa | 0%/60% | 0%/60% | 0%/60% | 0%/60% |
| ocpcf-pcf-pre-hpa | 17%/80% | 18%/80% | 17%/80% | 17%/80% |
| ocpcf-pcrf-core-hpa | 12%/40% | 12%/40% | 12%/40% | 12%/40% |
| ocpcf-query-service-hpa | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
Table 3-25 CPU and Memory Utilization by CnDBTier Services
| Service Name | Site1 - CPU (X/Y) | Site2 - CPU (X/Y) | Site3 - CPU (X/Y) | Site4 - CPU (X/Y) |
|---|---|---|---|---|
| ndbappmysqld | 88%/80% | 87%/80% | 89%/80% | 88%/80% |
| ndbmgmd | 0%/80% | 0%/80% | 0%/80% | 0%/80% |
| ndbmtd | 16%/80% | 17%/80% | 17%/80% | 18%/80% |
| ndbmysqld | 8%/80% | 9%/80% | 10%/80% | 8%/80% |
Latency
Table 3-26 Average CnPCRF Core JDBC Latency Observations (in ms)
| Site 1 | Site 2 | Site 3 | Site 4 |
|---|---|---|---|
| 2.19 ms | 2.32 | 2.66 | 2.56 |
3.1.3 Test Scenario: CnPCRF Data Call Model on Two-Site GeoRedundant setup, with 30K TPS per NFSet (with 15K TPS on each instance)
This test run benchmarks the performance and capacity of PCRF data call model that is deployed in converged mode on a two-site georedundant setup. Each site in the setup handles an incoming traffic of 15K TPS.
3.1.3.1 Test Case and Setup Details
Test Case Parameters
The following table describes the test case parameters and their values:
Table 3-27 Test case Parameters
| Parameter | Value |
|---|---|
| Call Rate (Ingress + Egress) | 15K TPS on each site |
| ASM | Disabled |
| Execution Time | 134 hours |
Table 3-28 Call Model Data
| Messages | Total TPS |
|---|---|
| CCR-I | 3.02K |
| CCR-U | 1.62K |
| CCR-T | 3.02K |
| SNR | 0.60K |
| RAR | 0.60K |
| Sy | 3.24K |
| LDAP | 3.02K |
| Total TPS | 15.12K |
Table 3-29 CnPCRF Configurations
| Service Name | Status |
|---|---|
| Overload Control | Enabled (pcrf-core) |
| Congestion Control | Enabled (diam-gw) |
| Subscriber Activity Log (SAL) | Disabled |
| LDAP | Enabled |
| Online Charging System (OCS) | Enabled |
| Audit | Enabled |
| Replication | Enabled |
| Binding | Enabled |
| PER | Disabled |
| PDS Single UEID | Enabled (gpsi) |
Table 3-30 CnPCRF Interfaces
| Feature Name | Status |
|---|---|
| UDR on-demand nrf discovery | Disable |
| Sy (PCF N7-Sy) | Enable |
| N36 UDR subscription (N7/N15-Nudr) | Disable |
| N36 UDR query (N7/N15-Nudr) | Disable |
| LDAP (Gx-LDAP) | Enable |
| CHF (SM-Nchf) | Disable |
| BSF (N7-Nbsf) | Disable |
| AMF on demand nrf discovery | Disable |
Infrastructure Details
Table 3-31 Software Details
| Applications | Versions |
|---|---|
| Policy | 25.2.201 |
| cnDBTier | 25.2.200 |
| ASM | Disabled |
| OSO | NA |
| CNE | 25.1.100 |
| CNC Console | 25.2.200 |
Table 3-32 Observability Services
| Service Names | Versions |
|---|---|
| OpenSearch | 2.11.0 |
| Fluentd | 1.17.1 |
| Prometheus | 2.52.0 |
| Grafana | 9.5.3 |
| Jaeger | 1.60.0 |
For more information about Policy Installation, see Oracle Communications Cloud Native Core, Converged Policy Installation, Upgrade, and Fault Recovery Guide.
Table 3-33 Hardware Details
| Hardware | Details |
|---|---|
| Environment | Hypervisor |
| Server | ORACLE SERVER X8-2 |
| Model | Intel(R) Xeon(R) Platinum 8260 CPU |
| Clock Speed | 2.400 GHz |
| Total Cores | 96 |
| Memory Size | 576 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 18 |
| Maximum DIMMs | 24 |
| Installed Memory | 576 GB |
Resource Allocation
The following table describes the resource capacity allocated to the Policy microservices:Table 3-34 Resource Allocation for Policy Microservices
| Microservices | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container | Replicas |
|---|---|---|---|---|---|---|---|
| Appinfo | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 1 |
| Binding Service | 6 | 5 | 8Gi | 1Gi | 1Gi | 80Mi | 15 |
| Diameter Connector | 4 | 3 | 2Gi | 1Gi | 1Gi | 80Mi | 8 |
| Configuration Service | 4 | 2 | 2Gi | 1Gi | 1Gi | 80Mi | 2 |
| Egress Gateway | 4 | 3 | 6Gi | 4Gi | 1Gi | 80Mi | 1 |
| Ingress Gateway | 4 | 3 | 6Gi | 4Gi | 1Gi | 80Mi | 1 |
| NRF Client NF Discovery | 4 | 3 | 2Gi | 0.5Gi | 1Gi | 80Mi | 1 |
| NRF Client NF Management | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 1 |
| Audit Service | 2 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 1 |
| CM Service | 4 | 2 | 2Gi | 1Gi | 1Gi | 80Mi | 2 |
| LDAP Gateway | 4 | 3 | 2Gi | 1Gi | 1Gi | 80Mi | 10 |
| PDS | 6 | 5 | 4Gi | 2Gi | 1Gi | 80Mi | 25 |
| PRE | 5 | 5 | 4Gi | 2Gi | 1Gi | 80Mi | 25 |
| Query Service | 2 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 1 |
| pcrf-core/pcrf-core | 8 | 7 | 8Gi | 8Gi | 1Gi | 80Mi | 30 |
| Perfinfo | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 2 |
| Diameter Gateway | 4 | 3 | 2Gi | 2Gi | 1Gi | 80Mi | 7 |
Table 3-35 Resource Allocation for cnDBTier Services
| Microservices | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container | Replicas |
|---|---|---|---|---|---|---|---|
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 1 | 1 | 1Gi | 1Gi | 1Gi | 90Mi | 1 |
| mysql-cluster-db-monitor-svc/db-monitor-svc | 2 | 2 | 2Gi | 2Gi | 1Gi | 90Mi | 1 |
| mysql-cluster-one-two-c1-replication-svc/one-two-c1-replication-svc | 2 | 2 | 12Gi | 12Gi | 1Gi | 90Mi | 1 |
| mysql-cluster-two-one-c1-replication-svc/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 1 |
| mysql-cluster-one-two-c2-replication-svc/one-two-c2-replication-svc | 1100m | 1100m | 2Gi | 1Gi | 1Gi | 90Mi | 1 |
| ndbappmysqld/mysqlndbcluster | 8 | 8 | 20Gi | 19Gi | 1Gi | 90Mi | 5 |
| ndbappmysqld/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 5 |
| ndbappmysqld/init-sidecar | 100m | 100m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 5 |
| ndbmgmd/mysqlndbcluster | 2 | 2 | 11.25Gi | 9Gi | 1Gi | 90Mi | 2 |
| ndbmgmd/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 2 |
| ndbmtd/mysqlndbcluster | 8 | 8 | 73Gi | 73Gi | 1Gi | 90Mi | 8 |
| ndbmtd/db-backup-executor-svc | 2 | 2 | 2Gi | 2Gi | 1Gi | 90Mi | 8 |
| ndbmtd/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 8 |
| ndbmysqld/mysqlndbcluster | 4 | 4 | 25Gi | 25Gi | 1Gi | 90Mi | 4 |
| ndbmysqld/init-sidecar | 100m | 100m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 4 |
| ndbmysqld/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 4 |
3.1.3.2 Results
CPU and Memory Utilization
This section lists the CPU and memory utilization by Policy and cnDBTier microservices. The CPU utilization is the ratio between the (total CPU utilization against total CPU request (X)) versus (target CPU Utilization (Y) configured for the pod).
Table 3-36 CPU and Memory Utilization by Policy Microservices
| Microservices | Site-1 CPU | Site-1 Memory | Site-2 CPU | Site-2 Memory |
|---|---|---|---|---|
| Appinfo | 3.90% | 27.54% | 4.90% | 28.03% |
| Binding Service | 11.29% | 20.22% | 11.64% | 15.41% |
| Diameter Connector | 16.04% | 35.03% | 15.56% | 34.27% |
| Configuration Service | 5.97% | 37.52% | 5.74% | 60.40% |
| Egress Gateway | 0.10% | 12.04% | 0.10% | 12.99% |
| Ingress Gateway | 1.82% | 16.99% | 1.07% | 18.08% |
| NRF Client NF Discovery | 0.12% | 27.93% | 0.15% | 28.52% |
| NRF Client NF Management | 0.40% | 42.58% | 0.40% | 41.80% |
| Audit Service | 4.05% | 75.00% | 2.25% | 69.92% |
| CM Service | 0.27% | 54.86% | 0.30% | 57.37% |
| LDAP Gateway | 7.17% | 34.62% | 6.97% | 34.64% |
| PDS | 16.95% | 61.22% | 17.82% | 59.87% |
| PRE | 18.64% | 57.42% | 17.95% | 57.28% |
| Query Service | 0.10% | 19.97% | 0.15% | 20.46% |
| ocpcf-pcrf-core/pcrf-core | 15.89% | 35.41% | 15.52% | 37.76% |
| Perfinfo | 30.20% | 14.40% | 17.45% | 14.50% |
| Diameter Gateway | 20.75% | 63.37% | 19.62% | 58.57% |
Table 3-37 CPU and Memory Utilization by CnDBTier Services
| Microservices | Site-1 CPU | Site-1 Memory | Site-2 CPU | Site-2 Memory |
|---|---|---|---|---|
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 0.45% | 8.69% | 0.09% | 8.30% |
| mysql-cluster-db-monitor-svc/db-monitor-svc | 1.00% | 33.64% | 0.30% | 29.05% |
| mysql-cluster-one-two-c1-replication-svc/one-two-c1-replication-svc | 0.60% | 2.47% | - | - |
| mysql-cluster-one-two-c1-replication-svc/db-infra-monitor-svc | 0.50% | 20.70% | - | - |
| mysql-cluster-one-two-c2-replication-svc/one-two-c2-replication-svc | 0.91% | 13.33% | - | - |
| mysql-cluster-two-one-c1-replication-svc/two-one-c1-replication-svc | - | - | 0.55% | 2.60% |
| mysql-cluster-two-one-c1-replication-svc/db-infra-monitor-svc | - | - | 1.00% | 19.92% |
| mysql-cluster-two-one-c2-replication-svc/two-one-c2-replication-svc | - | - | 1.09% | 13.48% |
| ndbappmysqld/mysqlndbcluster | 70.96% | 29.98% | 69.34% | 29.82% |
| ndbappmysqld/db-infra-monitor-svc | 1.00% | 21.72% | 1.20% | 21.72% |
| ndbappmysqld/init-sidecar | 3.60% | 0.39% | 3.20% | 0.39% |
| ndbmgmd/mysqlndbcluster | 0.57% | 18.06% | 0.62% | 18.00% |
| ndbmgmd/db-infra-monitor-svc | 1.00% | 20.12% | 0.75% | 20.51% |
| ndbmtd/mysqlndbcluster | 27.91% | 82.66% | 22.94% | 82.62% |
| ndbmtd/db-backup-executor-svc | 0.05% | 2.76% | 0.05% | 2.75% |
| ndbmtd/db-infra-monitor-svc | 7.25% | 20.90% | 7.19% | 20.90% |
| ndbmysqld/mysqlndbcluster | 8.12% | 21.86% | 8.38% | 22.13% |
| ndbmysqld/init-sidecar | 3.25% | 0.59% | 3.00% | 0.59% |
| ndbmysqld/db-infra-monitor-svc | 2.00% | 24.02% | 1.37% | 24.61% |
Latency
| NF Service Latency (in milliseconds)Note: Additional 100ms latency introduced between DIAM-GW and external interfaces | Site1 | Site2 |
|---|---|---|
| PCRF_Policyds | 99.873 | 129.388 |
| PCRF_Binding | 38.744 | 53.576 |
| PCRF_Diam_connector | 103.423 | 106.496 |
| PCRF_Core_JDBC_Latency | 9.124 | 15.534 |
Table 3-38 Average CnPCRF Core JDBC Latency Observations (in ms)
| Methods | 50th Percentile (Site1) | 99th Percentile (Site1) | 50th Percentile (Site2) | 99th Percentile (Site2) |
|---|---|---|---|---|
| DIAM | 38.6 | 100.00 | 39.7 | 100.0 |
3.1.4 Test Scenario: CnPCRF Voice Call Model on Two-Site GeoRedundant setup, with 30K TPS per NFSet (with 15K TPS on each instance)
This test run benchmarks the performance and capacity of CnPCRF voice call model that is deployed in converged mode on two-site georedundant setup. Each site in the setup handles an incoming traffic of 15K TPS.
3.1.4.1 Test Case and Setup Details
Test Case Parameters
The following table describes the testcase parameters and their values:
Table 3-39 Testcase Parameters
| Parameter | Value |
|---|---|
| Call Rate (Ingress + Egress) | (15k TPS each sites) in two-site georedundant setup |
| ASM | Disabled |
| Execution Time | 72 hours |
Table 3-40 Call Model Data
| Messages | TPS |
|---|---|
| CCR-I | 630 |
| CCR-U | 1260 |
| CCR-T | 630 |
| Rx-RAR | 1260 |
| Gx-RAR | 1890 |
| AAR-I | 630 |
| AAR-U | 630 |
| STR | 630 |
The following CnPCRF services/features/databases were either enabled or disabled to run this call flow:
Table 3-41 CnPCRF Configurations
| Service Name | Status |
|---|---|
| Overload Control | Enabled |
| Congestion Control | Enabled |
| Subscriber Activity Log (SAL) | Disabled |
| LDAP | Disabled |
| Online Charging System (OCS) | Disabled |
| Audit | Disabled |
| Replication | Enabled |
| Binding | Enabled |
| PER | Enabled |
| PDS Single UEID | Disabled |
Table 3-42 PCF Interfaces
| Feature Name | Status |
|---|---|
| N36 UDR query (N7/N15-Nudr) | Disable |
| N36 UDR subscription (N7/N15-Nudr) | Disable |
| UDR on-demand nrf discovery | Disable |
| CHF (SM-Nchf) | Disable |
| BSF (N7-Nbsf) | Disable |
| AMF on demand nrf discovery | Disable |
| LDAP (Gx-LDAP) | Disable |
| Sy (PCF N7-Sy) | Disable |
Table 3-43 CnPCRF Interfaces
| Feature Name | Status |
|---|---|
| Sy (PCRF Gx-Sy) | Disable |
| Sd (Gx-Sd) | Disable |
| Gx UDR query (Gx-Nudr) | Disable |
| Gx UDR subscription (Gx-Nudr | Disable |
| CHF enabled (AM) | Disable |
| Usage Monitoring (Gx) | Disable |
| Subscriber HTTP Notifier (Gx) | Disable |
Infrastructure Details
Table 3-44 Software Details
| Applications | Versions |
|---|---|
| Policy | 25.2.201 |
| cnDBTier | 25.2.200 |
| ASM | Disabled |
| OSO | NA |
| CNE | 25.1.100 |
| CNC Console | 25.2.200 |
Table 3-45 Observability Services
| Service Names | Versions |
|---|---|
| OpenSearch | 2.11.0 |
| Fluentd | 1.17.1 |
| Prometheus | 2.52.0 |
| Grafana | 9.5.3 |
| Jaeger | 1.60.0 |
For more information about Policy Installation, see Oracle Communications Cloud Native Core, Converged Policy Installation, Upgrade, and Fault Recovery Guide.
Table 3-46 Hardware Details
| Hardware | Details |
|---|---|
| Environment | Hypervisor |
| Server | ORACLE SERVER X8-2 |
| Model | Intel(R) Xeon(R) Platinum 8260 CPU |
| Clock Speed | 2.400 GHz |
| Total Cores | 96 |
| Memory Size | 576 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 18 |
| Maximum DIMMs | 24 |
| Installed Memory | 576 GB |
Resource Allocation
The following table describes the resource capacity allocated to the Policy microservices:Table 3-47 Resource Allocation for Policy Microservices
| Microservices | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container | Replicas |
|---|---|---|---|---|---|---|---|
| Appinfo | 1 | 1 | 1Gi | 0.5Gi | 1Gi | 80Mi | 1 |
| Binding Service | 6 | 5 | 8Gi | 1Gi | 1Gi | 80Mi | 18 |
| Diameter Connector | 4 | 3 | 2Gi | 1Gi | 1Gi | 80Mi | 1 |
| Configuration Service | 4 | 2 | 2Gi | 0.5Gi | 1Gi | 80Mi | 2 |
| Egress Gateway | 4 | 3 | 6Gi | 4Gi | 1Gi | 80Mi | 1 |
| Ingress Gateway | 4 | 3 | 6Gi | 4Gi | 1Gi | 80Mi | 1 |
| NRF Client NF Discovery | 4 | 3 | 2Gi | 0.5Gi | 1Gi | 80Mi | 1 |
| NRF Client NF Management | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 1 |
| Audit Service | 2 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 1 |
| CM Service | 4 | 2 | 2Gi | 0.5Gi | 1Gi | 80Mi | 2 |
| PDS | 6 | 5 | 4Gi | 1Gi | 1Gi | 80Mi | 5 |
| PRE | 8 | 8 | 4Gi | 4Gi | 1Gi | 80Mi | 24 |
| Query Service | 2 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 1 |
| pcrf-core/pcrf-core | 8 | 7 | 8Gi | 8Gi | 1Gi | 80Mi | 24 |
| Perfinfo | 1 | 1 | 1Gi | 0.5Gi | 1Gi | 80Mi | 2 |
| Diameter Gateway | 4 | 3 | 2Gi | 1Gi | 1Gi | 80Mi | 9 |
| Appinfo | 1 | 1 | 1Gi | 0.5Gi | 1Gi | 80Mi | 1 |
| Binding Service | 6 | 5 | 8Gi | 1Gi | 1Gi | 80Mi | 18 |
| Diameter Connector | 4 | 3 | 2Gi | 1Gi | 1Gi | 80Mi | 1 |
| Configuration Service | 4 | 2 | 2Gi | 0.5Gi | 1Gi | 80Mi | 2 |
| Egress Gateway | 4 | 3 | 6Gi | 4Gi | 1Gi | 80Mi | 1 |
| Ingress Gateway | 4 | 3 | 6Gi | 4Gi | 1Gi | 80Mi | 1 |
| NRF Client NF Discovery | 4 | 3 | 2Gi | 0.5Gi | 1Gi | 80Mi | 1 |
| NRF Client NF Management | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 1 |
| Audit Service | 2 | 1 | 1Gi | 1Gi | 1Gi | 80Mi | 1 |
| CM Service | 4 | 2 | 2Gi | 0.5Gi | 1Gi | 80Mi | 2 |
Table 3-48 Resource Allocation for cnDBTier Services
| Microservices | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container | Replicas |
|---|---|---|---|---|---|---|---|
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 1100m | 1100m | 1Gi | 1Gi | 1Gi | 90Mi | 1 |
| mysql-cluster-db-monitor-svc/db-monitor-svc | 4 | 4 | 4Gi | 4Gi | 1Gi | 90Mi | 1 |
| mysql-cluster-one-two-replication-svc/one-two-replication-svc | 2 | 2 | 12Gi | 12Gi | 1Gi | 90Mi | 1 |
| mysql-cluster-one-two-replication-svc/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 1 |
| ndbappmysqld/mysqlndbcluster | 8 | 8 | 20Gi | 19Gi | 1Gi | 90Mi | 5 |
| ndbappmysqld/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 5 |
| ndbappmysqld/init-sidecar | 100m | 100m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 5 |
| ndbmgmd/mysqlndbcluster | 4 | 4 | 11.25Gi | 9Gi | 1Gi | 90Mi | 2 |
| ndbmgmd/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 2 |
| ndbmtd/mysqlndbcluster | 10 | 10 | 83Gi | 73Gi | 1Gi | 90Mi | 8 |
| ndbmtd/db-backup-executor-svc | 2 | 2 | 2Gi | 2Gi | 1Gi | 90Mi | 8 |
| ndbmtd/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 8 |
| ndbmysqld/mysqlndbcluster | 10 | 10 | 25Gi | 25Gi | 1Gi | 90Mi | 2 |
| ndbmysqld/init-sidecar | 100m | 100m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 2 |
| ndbmysqld/db-infra-monitor-svc | 200m | 200m | 0.25Gi | 0.25Gi | 1Gi | 90Mi | 2 |
3.1.4.2 Results
CPU and Memory Utilization
This section lists the CPU and memory utilization by Policy and cnDBTier microservices.
Table 3-49 CPU and Memory Utilization by Policy Microservices
| Microservices | CPU Site1 | Memory Site1 | CPU Site2 | Memory Site2 |
|---|---|---|---|---|
| Appinfo | 3.90% | 26.86% | 3.30% | 26.86% |
| Binding Service | 7.69% | 12.43% | 7.83% | 12.00% |
| Configuration Service | 5.01% | 41.19% | 3.46% | 42.50% |
| Egress Gateway | 0.15% | 11.96% | 0.12% | 15.09% |
| Ingress Gateway | 0.57% | 15.97% | 0.55% | 15.85% |
| NRF Client NF Discovery | 0.12% | 30.08% | 0.18% | 29.05% |
| NRF Client NF Management | 0.50% | 41.60% | 0.40% | 41.70% |
| Audit Service | 0.20% | 47.66% | 0.20% | 47.27% |
| CM Service | 0.36% | 54.03% | 0.34% | 55.22% |
| PRE | 11.18% | 53.24% | 10.32% | 56.19% |
| Query Service | 0.10% | 34.67% | 0.10% | 34.67% |
| ocpcf-pcrf-core/pcrf-core | 28.46% | 57.05% | 27.83% | 54.75% |
| Perfinfo | 5.75% | 13.87% | 6.80% | 13.96% |
| Diameter Gateway | 23.65% | 50.15% | 20.40% | 45.20% |
Table 3-50 CPU and Memory Utilization by cnDBTier Services
| Microservices | CPU Site1 | Memory Site1 | CPU Site2 | Memory Site2 |
|---|---|---|---|---|
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 0.10% | 8.01% | 0.10% | 7.71% |
| mysql-cluster-db-monitor-svc/db-monitor-svc | 0.12% | 15.65% | 1.00% | 16.09% |
| mysql-cluster-two-one-replication-svc/two-one-replication-svc | - | - | 0.45% | 2.29% |
| mysql-cluster-two-one-replication-svc/db-infra-monitor-svc | - | - | 1.00% | 20.70% |
| ndbappmysqld/mysqlndbcluster | 45.66% | 28.65% | 43.67% | 28.44% |
| ndbappmysqld/db-infra-monitor-svc | 2.00% | 22.34% | 2.20% | 23.52% |
| ndbappmysqld/init-sidecar | 3.00% | 0.39% | 3.00% | 0.39% |
| ndbmgmd/mysqlndbcluster | 0.24% | 17.99% | 0.25% | 17.99% |
| ndbmgmd/db-infra-monitor-svc | 2.00% | 21.88% | 2.00% | 21.88% |
| ndbmtd/mysqlndbcluster | 18.32% | 93.10% | 19.40% | 93.10% |
| ndbmtd/db-backup-executor-svc | 0.10% | 2.73% | 0.10% | 2.73% |
| mysql-cluster-one-two-replication-svc/one-two-replication-svc | 0.40% | 2.34% | - | - |
| ndbmtd/db-infra-monitor-svc | 7.87% | 22.17% | 9.12% | 22.36% |
| ndbmysqld/mysqlndbcluster | 4.08% | 17.38% | 4.33% | 17.38% |
| ndbmysqld/init-sidecar | 3.00% | 0.39% | 3.00% | 0.39% |
| ndbmysqld/db-infra-monitor-svc | 2.00% | 24.22% | 4.00% | 23.44% |
| mysql-cluster-one-two-replication-svc/db-infra-monitor-svc | 2.00% | 20.70% | - | - |
Latency
Table 3-51 Average Latency Observations for CnPCRF In Milliseconds
| Services | Site 1 | Site 2 |
|---|---|---|
| PCRF_Binding | 14.209 | 14.008 |
| PCRF_Core_JDBC_Latency | 3.607 | 3.528 |
Table 3-52 Average Latency Observations for CnPCRF for Percentile in Milliseconds
| Methods | 50th Percentile (Site1) | 99th Percentile (Site1) | 50th Percentile (Site2) | 99th Percentile (Site2) |
|---|---|---|---|---|
| DIAM | 9.340 | 45.800 | 8.270 | 58.100 |
3.1.5 Test Scenario: CnPCRF Data Call Model with 60K TPS per NFSet (with 60K TPS on only one instance)
This test run benchmarks the performance and capacity of CnPCRF data call model that is deployed in converged mode on a single site setup. The test was run for 60K TPS on a single site in georedundant setup for 60 hours.
3.1.5.1 Test Case and Setup Details
Test Case Parameters
The following table describes the test case parameters and their values:
Table 3-53 Testcase Parameters
| Parameters | Values |
|---|---|
| Call Rate (Ingress + Egress) | 60K TPS |
| ASM | Disabled |
| Traffic Ratio | 1.6:4.2:1.6:1 (CCR-I/U/T/RAR) |
| Active Subscribers | 15M |
Policy Project Details:
The Policy Design editor based on the Blockly interface was used to set the Policy project for each of the Policy services. The complexity level of Policy Project configured for this run was High.
Complexity Level Definition:
- Low– No Usage of Loops in Blockly logic, No JSON operations, No complex Java Script code in Object Expression /Statement Expression.
- Medium - Usage of Loops in Blockly logic, Policy Table Wildcard match <= 3 fields, MatchList < 3, 3 < RegEx match < 6
- High - JSON Operations – Custom, complex Java Script code in Object Expression /Statement Expression, Policy Table Wildcard match > 3 fields, MatchLists >= 3, RegEx mat >= 6
Call Model Data
Table 3-54 Traffic distribution per call flow
| Call Flow | Traffic at Site1 |
|---|---|
| TOTAL-IGW | 0 |
| TOTAL-EGW | 12168 |
| DIAM-GW-IN-TOTAL | 43144 |
| DIAM-GW-OUT-TOTAL | 4832 |
| TOTAL-TPS | 60144 |
Following PCF configurations were either enabled or disabled for running this call flow:
Table 3-55 Configurations
| Feature | Status |
|---|---|
| Binding | Disabled |
| PER | Disabled |
| SAL | Disabled |
| LDAP | Disabled |
| OCS | Disabled |
| PDS Compression | Disabled |
| Audit | Enabled |
| PRIMARYKEY_LOOKUP_ENABLED | Enabled |
| SINGLE_UE_ID_PREFERENTIAL_SEARCH | Enabled |
| Replication | Enabled |
| USER.allDataTypes.excludeApns | Enabled (ims apn) |
Table 3-56 PCF Interfaces
| Feature Name | Status |
|---|---|
| N36 UDR query (N7/N15-Nudr) | Enabled |
| N36 UDR subscription (N7/N15-Nudr) | Enabled |
| UDR on-demand nrf discovery | Disabled |
| CHF (SM-Nchf) | Disabled |
| BSF (N7-Nbsf) | Disabled |
| AMF on demand nrf discovery | Disabled |
| LDAP (Gx-LDAP) | Disabled |
| Sy (PCF N7-Sy) | Disabled |
Table 3-57 CnPCRF Interfaces
| Feature Name | Status |
|---|---|
| Sy (PCRF Gx-Sy) | Disabled |
| Sd (Gx-Sd) | Disabled |
| Gx UDR query (Gx-Nudr) | Disabled |
| Gx UDR subscription (Gx-Nudr | Disabled |
| CHF enabled (AM) | Disabled |
| Usage Monitoring (Gx) | Disabled |
| Subscriber HTTP Notifier (Gx) | Disabled |
Infrastructure Details
Table 3-58 Software Details
| Aplications | Version |
|---|---|
| Policy | 25.2.100 |
| cnDBTier | 25.2.100 |
| UDR | 25.2.100 |
| ASM | Disabled |
| OSO | Disabled |
| CNE | 23.3.5 |
Table 3-59 Observability Services
| Service Names | Versions |
|---|---|
| OpenSearch | 2.3.0 |
| Fluentd | 1.16.2 |
| Prometheus | 2.51.1 |
| Grafana | 9.5.3 |
| Jaeger | 1.52.0 |
For more information about Policy Installation, see Oracle Communications Cloud Native Core, Converged Policy Installation, Upgrade, and Fault Recovery Guide.
Table 3-60 Hardware Details
| Hardware | Details |
|---|---|
| Environment | Hypervisor |
| Server | ORACLE SERVER X8-2 |
| Model | Intel(R) Xeon(R) Platinum 8260 CPU |
| Clock Speed | 2.400 GHz |
| Total Cores | 96 |
| Memory Size | 576 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 18 |
| Maximum DIMMs | 24 |
| Installed Memory | 576 GB |
Resource Allocation
The following table describes the resource capacity allocated to the Policy microservices:Table 3-61 Resource Allocation for Policy Microservices
| Microservices | CPU Request per pod | CPU Limit per pod | Memory Request per pod | Memory Limit per pod | Replicas |
|---|---|---|---|---|---|
| Appinfo | 2 | 2 | 4 | 4 | 2 |
| Binding Service | 1 | 1 | 1 | 1 | 0 |
| Diameter Connector | 4 | 4 | 2 | 2 | 1 |
| Diameter Gateway | 4 | 4 | 2 | 2 | 9 |
| Configuration Service | 4 | 4 | 2 | 2 | 2 |
| Egress Gateway | 4 | 4 | 6 | 6 | 10 |
| Ingress Gateway | 5 | 5 | 6 | 6 | 2 |
| Audit Service | 2 | 2 | 4 | 4 | 2 |
| CM Service | 2 | 4 | 2 | 2 | 2 |
| PDS | 7 | 7 | 8 | 8 | 28 |
| PRE | 4 | 4 | 4 | 4 | 28 |
| Query Service | 2 | 2 | 1 | 1 | 2 |
| pcrf-core | 8 | 8 | 8 | 8 | 32 |
| Perfinfo | 1 | 1 | 1 | 2 | 2 |
| Alternate Route Service | 2 | 2 | 4 | 4 | 5 |
Table 3-62 Resource Allocation for cnDBTier Services
| Microservices | CPU Request per pod | CPU Limit per pod | Memory Request per pod | Memory Limit per pod | ReplicasMin Replica = Max Replica |
|---|---|---|---|---|---|
| ndbappmysqld | 6 | 6 | 13 | 13 | 22 |
| ndbmgmd | 4 | 4 | 8 | 10 | 2 |
| ndbmtd | 16 | 16 | 62 | 62 | 14 |
| ndbmysqld | 4 | 4 | 32 | 32 | 4 |
3.1.5.2 Results
CPU and Memory Utilization
This section lists the CPU and memory utilization by Policy and cnDBTier microservices.
Table 3-63 CPU and Memory Utilization by Policy Microservices
| Microservices | CPU utilization | Memory utilization |
|---|---|---|
| Appinfo | 1.32 | 6.96 |
| Audit Service | 0.687 | 28.9 |
| CM Service | 0.174 | 45.2 |
| Configuration Service | 3.55 | 48.2 |
| Diameter Connector | 0.114 | 28.3 |
| Diameter Gateway | 30.5 | 42.7 |
| Alternate Route Service | 0.0720 | 16.8 |
| Egress Gateway | 22.6 | 29.5 |
| Ingress Gateway | 0.416 | 25.3 |
| pcrf-core | 45.4 | 55.1 |
| Perfinfo | 18.9 | 7.43 |
| PDS | 15.8 | 25.0 |
| PRE | 40.8 | 56.5 |
| Query Service | 0.0389 | 36.9 |
Table 3-64 CPU and Memory Utilization by cnDBTier Services
| Microservices | CPU Utilization | Memory Utilization |
|---|---|---|
| ndbappmysqld | 27.9 | 45.9 |
| ndbmtd | 17.8 | 93.4 |
| ndbmysqld | 13.8 | 42.4 |
| ndbmgmd | 0.263 | 20.9 |
Latency
Table 3-65 Average Latency Observations (in milliseconds) for the Call Flows:
| Service Name | Observed Latency at Site1(ms) |
|---|---|
| PCF_IGW_Latency | NA |
| PCF_SM_Svc_Overall | NA |
| PCF_POLICYPDS_Overall | 43.3 |
| PCF_UDRCONNECTOR_Overall | 108 |
| PCF_CHFCONNECTOR_Overall | NA |
| PCF_NRFCLIENT_On_Demand | NA |
| PCF_UsrSvc_Overall | NA |
| PCF_EGRESS_Latency | 106 |
| PCF_Binding_Svc_Latency | NA |
| PCRF_Core_JDBC_Latency | 0.782 |
| PCF_Diam_Connector_Latency | NA |
| PCF_Diam_Gw_Latency | NA |
| PCF_Usage_Mon | NA |
| Pcrf_Core_Overall | NA |
Table 3-66 Latency obervations for cnDBTier services
| Site-Slave Node( In Seconds) | cnDBtier Replication Delay |
|---|---|
| Site-1-ndbmysqld-0 | 0 |
| Site-1-ndbmysqld-1 | 0 |
| Site-1-ndbmysqld-2 | 0 |
| Site-1-ndbmysqld-3 | 0 |
| Site-2-ndbmysqld-0 | 0 |
| Site-2-ndbmysqld-1 | 0 |
| Site-2-ndbmysqld-2 | 0 |
| Site-2-ndbmysqld-3 | 0 |
3.1.6 Test Scenario:CnPCRF Usage Monitoring Data Call Model on Two-Site GeoRedundant Setup, with 28K TPS per NFSet (with 28K TPS on only one instance)
This test was run to benchmark the performance and capacity of CnPCRF call model with 10K TPS Diameter Ingress Gateway and 18K TPS Diameter Egress Gateway TPS Traffic with Usage Monitoring enabled.
3.1.6.1 Test Case and Setup Details
Testcase Parameters
The following table describes the testcase parameters and their values:
| Parameters | Values |
|---|---|
| Call Rate (Ingress + Egress) | 28K TPS on a two-site Setup |
| ASM | Disable |
| Traffic Ratio | 10K Diameter Ingress Gateway TPS and 19K Egress Gateway TPS |
| Active Subscribers | 5M |
Project Details
The Policy Design editor based on the Blockly interface was used to set the Policy project for each of the Policy services. The complexity level of Policy Project configured for this run was High.
Complexity Level Definition:
- Low – No usage of loops in Blockly logic, no JSON operations, and no complex Java Script code in object expression/statement expression.
- Medium – Usage of loops in Blockly logic, Policy table wildcard match <= 3 fields, MatchList < 3, and 3 < RegEx match < 6
- High – JSON Operations – Custom, complex Java script code in object Expression/statement expression, Policy table wildcard match > 3 fields, MatchLists >= 3, and RegEx mat >= 6
Configurations
Following configurations were either enabled or disabled for running this call flow:
Table 3-67 Configurations
| Name | Status |
|---|---|
| Binding | Disabled |
| Subscriber Tracing | Enabled |
| Overload | Enabled |
| Bulwark | Enabled |
Infrastructure Details
Table 3-68 Software Details
| Applications | Versions |
|---|---|
| Policy | 25.1.201 |
| cnDBTier | 25.1.201 |
| UDR | 25.1.201 |
| ASM | Disabled |
| OSO | NA |
| CNE | 23.3.5 |
| CNC Console | 25.1.201 |
Table 3-69 Observability Services
| Service Names | Versions |
|---|---|
| OpenSearch | 2.3.0 |
| Fluentd | 1.16.2 |
| Prometheus | 2.51.1 |
| Grafana | 9.5.3 |
| Jaeger | 1.52.0 |
For more information about Policy Installation, see Oracle Communications Cloud Native Core, Converged Policy Installation, Upgrade, and Fault Recovery Guide.
Table 3-70 Hardware Details
| Hardware | Details |
|---|---|
| Environment | Hypervisor |
| Server | ORACLE SERVER X8-2 |
| Model | Intel(R) Xeon(R) Platinum 8260 CPU |
| Clock Speed | 2.400 GHz |
| Total Cores | 96 |
| Memory Size | 576 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 18 |
| Maximum DIMMs | 24 |
| Installed Memory | 576 GB |
Resource Allocation
The following table describes the resource capacity allocated to the Policy microservices:Table 3-71 Resource Allocation for Policy Microservices
| Microservices | Replicas | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container |
|---|---|---|---|---|---|---|---|
| Appinfo | 2 | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi |
| Bulwark Service | 1 | 2 | 2 | 1Gi | 1Gi | 1Gi | 80Mi |
| Notifier | 1 | 2 | 2 | 1Gi | 1Gi | 1Gi | 80Mi |
| Binding Service | 4 | 4 | 4 | 4Gi | 4Gi | 1Gi | 80Mi |
| Diameter Connector | 1 | 4 | 4 | 2Gi | 2Gi | 2Gi | 80Mi |
| Configuration Service | 2 | 4 | 4 | 2Gi | 2Gi | 1Gi | 80Mi |
| Egress Gateway | 10 | 4 | 4 | 6Gi | 6Gi | 1Gi | 80Mi |
| Ingress Gateway | 2 | 2 | 2 | 2Gi | 2Gi | 1Gi | 80Mi |
| NRF Client NF Discovery | 2 | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi |
| NRF Client NF Management | 1 | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi |
| UDR Connector | 10 | 6 | 6 | 4Gi | 4Gi | 1Gi | 80Mi |
| Audit Service | 1 | 2 | 2 | 4Gi | 4Gi | 1Gi | 80Mi |
| CM Service | 2 | 4 | 4 | 2Gi | 2Gi | 2Gi | 80Mi |
| PDS | 16 | 7 | 7 | 4Gi | 4Gi | 4Gi | 80Mi |
| PRE | 8 | 4 | 4 | 4Gi | 4Gi | 1Gi | 80Mi |
| Query Service | 1 | 2 | 2 | 1Gi | 1Gi | 1Gi | 80Mi |
| AM Service | 1 | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi |
| SM Service | 1 | 2 | 2 | 2Gi | 2Gi | 1Gi | 80Mi |
| UE Service | 1 | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi |
| CnPCRF Core | 10 | 8 | 8 | 8Gi | 8Gi | 8Gi | 80Mi |
| Perfinfo | 2 | 1 | 1 | 1Gi | 1Gi | 1Gi | 80Mi |
| Usage Mon | 10 | 8 | 8 | 5Gi | 5Gi | 4Gi | 80Mi |
| Diameter Gateway | 3 | 4 | 4 | 4Gi | 4Gi | 2Gi | 80Mi |
Table 3-72 Resource Allocation for UDR
| Microservices | Replicas | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container |
|---|---|---|---|---|---|---|---|
| ocudr-alternate-route/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi | NA | NA |
| ocudr-alternate-route/alternate-route | 2 | 2 | 2 | 2Gi | 2Gi | 1Gi | 57Mi |
| ocudr-appinfo/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi | NA | NA |
| ocudr-appinfo/appinfo | 2 | 1 | 1 | 1Gi | 1Gi | 1Gi | 57Mi |
| ocudr-egressgateway/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi | NA | NA |
| ocudr-egressgateway/egressgateway | 2 | 6 | 6 | 4Gi | 4Gi | 1Gi | 57Mi |
| ocudr-ingressgateway-prov/istio-proxy | 2 | 2000m | 2000m | 1Gi | 1Gi | NA | NA |
| ocudr-ingressgateway-prov/ingressgateway-prov | 2 | 4 | 4 | 4Gi | 4Gi | 1Gi | 57Mi |
| ocudr-ingressgateway-sig/istio-proxy | 9 | 4000m | 4000m | 1Gi | 1Gi | NA | NA |
| ocudr-ingressgateway-sig/ingressgateway-sig | 9 | 6 | 6 | 4Gi | 4Gi | 1Gi | 57Mi |
| ocudr-nudr-config/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi | NA | NA |
| ocudr-nudr-config/nudr-config | 2 | 1 | 1 | 1Gi | 1Gi | 1022Mi | 72Mi |
| ocudr-nudr-config-server/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi | NA | NA |
| ocudr-nudr-config-server/config-server | 2 | 1 | 1 | 1Gi | 1Gi | 1Gi | 57Mi |
| ocudr-nudr-diameterproxy/nudr-diameterproxy | 2 | 6 | 6 | 4Gi | 4Gi | 1022Mi | 72Mi |
| ocudr-nudr-dr-provservice/istio-proxy | 2 | 2000m | 2000m | 1Gi | 1Gi | NA | NA |
| ocudr-nudr-dr-provservice/nudr-dr-provservice | 2 | 4 | 4 | 4Gi | 4Gi | 1022Mi | 72Mi |
| ocudr-nudr-drservice/istio-proxy | 17 | 3000m | 3000m | 1Gi | 1Gi | NA | NA |
| ocudr-nudr-drservice/nudr-drservice | 17 | 6 | 6 | 4Gi | 4Gi | 1022Mi | 72Mi |
| ocudr-nudr-notify-service/nudr-notify-service | 3 | 6 | 6 | 5Gi | 5Gi | 1022Mi | 72Mi |
| ocudr-nudr-nrf-client-nfmanagement/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi | NA | NA |
| ocudr-nudr-nrf-client-nfmanagement/nrf-client-nfmanagement | 2 | 1 | 1 | 1Gi | 1Gi | 1Gi | 57Mi |
| ocudr-performance/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi | NA | NA |
| ocudr-performance/perf-info | 2 | 1 | 1 | 1Gi | 1Gi | 1Gi | 57Mi |
| ocudr-nudr-diam-gateway/nudr-diam-gateway | 2 | 6 | 6 | 5Gi | 5Gi | 1Gi | 72Mi |
Table 3-73 Resource Allocation for cnDBTier Services
| Microservices | Replicas | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container |
|---|---|---|---|---|---|---|---|
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 1 | 1 | 1 | 1Gi | 1Gi | 1Gi | 90Mi |
| mysql-cluster-db-monitor-svc/db-monitor-svc | 1 | 4 | 4 | 4Gi | 4Gi | 1Gi | 90Mi |
| mysql-cluster-one-two-replication-svc/one-two-replication-svc | 1 | 2 | 2 | 12Gi | 12Gi | 1Gi | 90Mi |
| mysql-cluster-one-two-replication-svc/db-infra-monitor-svc | 1 | 100m | 100m | 256Mi | 256Mi | 1Gi | 90Mi |
| ndbappmysqld/mysqlndbcluster | 6 | 12 | 12 | 20Gi | 20Gi | 1Gi | 1Gi |
| ndbappmysqld/db-infra-monitor-svc | 6 | 100m | 100m | 256Mi | 256Mi | 1Gi | 90Mi |
| ndbappmysqld/init-sidecar | 6 | 100m | 100m | 256Mi | 256Mi | 1Gi | 90Mi |
| ndbmgmd/mysqlndbcluster | 2 | 4 | 4 | 10Gi | 8Gi | 1Gi | 90Mi |
| ndbmgmd/db-infra-monitor-svc | 2 | 100m | 100m | 256Mi | 256Mi | 1Gi | 90Mi |
| ndbmtd/mysqlndbcluster | 6 | 12 | 12 | 75Gi | 75Gi | 1Gi | 1Gi |
| ndbmtd/db-backup-executor-svc | 6 | 1 | 1 | 1Gi | 1Gi | 1Gi | 90Mi |
| ndbmtd/db-infra-monitor-svc | 6 | 100m | 100m | 256Mi | 256Mi | 1Gi | 90Mi |
| ndbmysqld/mysqlndbcluster | 2 | 4 | 4 | 16Gi | 16Gi | 1Gi | 1Gi |
| ndbmysqld/init-sidecar | 2 | 100m | 100m | 256Mi | 256Mi | 1Gi | 90Mi |
| ndbmysqld/db-infra-monitor-svc | 2 | 100m | 100m | 256Mi | 256Mi | 1Gi | 90Mi |
3.1.6.2 Results
CPU and Memory Utilization
This section lists the CPU and memory utilization by Policy and cnDBTier microservices.
Table 3-74 CPU and Memory Utilization by Policy Microservices
| Microservices | CPU Site1 | Memory Site1 | CPU Site2 | Memory Site2 |
|---|---|---|---|---|
| Appinfo | 3.00% | 26.12% | None | None |
| Bulwark Service | 36.80% | 52.54% | None | None |
| Notifier | 0.05% | 27.15% | None | None |
| Binding Service | 22.19% | 20.26% | None | None |
| Diameter Connector | 0.12% | 22.95% | None | None |
| Configuration Service | 3.35% | 41.46% | None | None |
| Egress Gateway | 41.15% | 22.13% | None | None |
| Ingress Gateway | 1.95% | 50.42% | None | None |
| NRF Client NF Discovery | 0.20% | 46.24% | None | None |
| NRF Client NF Management | 0.30% | 48.83% | None | None |
| UDR Connector | 33.42% | 43.24% | None | None |
| Audit Service | 0.20% | 13.31% | None | None |
| CM Service | 0.21% | 33.37% | None | None |
| PDS | 45.85% | 47.33% | None | None |
| PRE | 39.68% | 52.99% | None | None |
| Query Service | 0.05% | 30.96% | None | None |
| AM Service | 0.20% | 33.11% | None | None |
| SM Service | 0.10% | 26.32% | None | None |
| UE Service | 0.30% | 37.60% | None | None |
| CnPCRF core | 38.20% | 49.64% | None | None |
| Perfinfo | 19.40% | 14.79% | None | None |
| Usage Monitoring | 55.45% | 73.66% | None | None |
| Diameter Gateway | 25.35% | 25.80% | None | None |
Table 3-75 CPU and Memory Utilization by UDR
| Microservices | CPU Site1 | Memory Site1 | CPU Site2 | Memory Site2 |
|---|---|---|---|---|
| ocudr-alternate-route/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-alternate-route/alternate-route | 0.10% | 26.37% | None | None |
| ocudr-appinfo/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-appinfo/appinfo | 2.95% | 25.34% | None | None |
| ocudr-egressgateway/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-egressgateway/egressgateway | 0.07% | 19.59% | None | None |
| ocudr-ingressgateway-prov/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-ingressgateway-prov/ingressgateway-prov | 0.10% | 33.14% | None | None |
| ocudr-ingressgateway-sig/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-ingressgateway-sig/ingressgateway-sig | 31.78% | 47.32% | None | None |
| ocudr-nudr-config/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-nudr-config/nudr-config | 0.40% | 48.58% | None | None |
| ocudr-nudr-config-server/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-nudr-config-server/config-server | 0.80% | 37.65% | None | None |
| ocudr-nudr-diameterproxy/nudr-diameterproxy | 1.10% | 39.76% | None | None |
| ocudr-nudr-dr-provservice/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-nudr-dr-provservice/nudr-dr-provservice | 1.26% | 37.23% | None | None |
| ocudr-nudr-drservice/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-nudr-drservice/nudr-drservice | 42.51% | 49.26% | None | None |
| ocudr-nudr-notify-service/nudr-notify-service | 81.46% | 38.98% | None | None |
| ocudr-nudr-nrf-client-nfmanagement/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-nudr-nrf-client-nfmanagement/nrf-client-nfmanagement | 0.35% | 51.03% | None | None |
| ocudr-performance/istio-proxy | 0.00% | 0.00% | None | None |
| ocudr-performance/perf-info | 3.35% | 13.38% | None | None |
| ocudr-nudr-diam-gateway/nudr-diam-gateway | 0.97% | 33.75% | None | None |
Table 3-76 CPU and Memory Utilization by cnDBTier Services
| Microservices | CPU Site1 | Memory Site1 | CPU Site2 | Memory Site2 |
|---|---|---|---|---|
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 0.10% | 8.30% | 0.50% | 8.59% |
| mysql-cluster-db-monitor-svc/db-monitor-svc | 0.10% | 11.52% | 0.78% | 11.89% |
| mysql-cluster-two-one-replication-svc/two-one-replication-svc | None | None | 0.25% | 2.28% |
| mysql-cluster-two-one-replication-svc/db-infra-monitor-svc | None | None | 1.00% | 20.31% |
| mysql-cluster-one-two-replication-svc/one-two-replication-svc | 0.25% | 2.22% | None | None |
| mysql-cluster-one-two-replication-svc/db-infra-monitor-svc | 1.00% | 19.53% | None | None |
| ndbappmysqld/mysqlndbcluster | 45.18% | 20.40% | 0.12% | 18.00% |
| ndbappmysqld/db-infra-monitor-svc | 1.17% | 20.83% | 1.33% | 20.57% |
| ndbappmysqld/init-sidecar | 2.00% | 0.39% | 2.00% | 0.39% |
| ndbmgmd/mysqlndbcluster | 0.12% | 20.20% | 0.15% | 20.20% |
| ndbmgmd/db-infra-monitor-svc | 1.00% | 19.53% | 1.00% | 19.34% |
| ndbmtd/mysqlndbcluster | 29.06% | 93.26% | 7.27% | 93.20% |
| ndbmtd/db-backup-executor-svc | 0.10% | 5.45% | 0.10% | 5.45% |
| ndbmtd/db-infra-monitor-svc | 4.33% | 20.25% | 3.33% | 20.31% |
| ndbmysqld/mysqlndbcluster | 18.06% | 25.26% | 9.95% | 22.68% |
| ndbmysqld/init-sidecar | 2.00% | 0.39% | 2.00% | 0.39% |
| ndbmysqld/db-infra-monitor-svc | 2.00% | 22.66% | 2.00% | 22.85% |
Latency
Table 3-77 Average NF service latency (in milliseconds)
| NF Service Latency | Site1 | Site2 |
|---|---|---|
| PCF_IGW_Latency | 130.250 | NA |
| PCF_SM_Svc_Overall | 0.000 | NA |
| PCF_POLICYPDS_Overall | 17.802 | NA |
| PCF_UDRCONNECTOR_Overall | 9.095 | NA |
| PCF_CHFCONNECTOR_Overall | 0.000 | NA |
| PCF_NRFCLIENT_On_Demand | 0.000 | NA |
| PCF_UsrSvc_Overall | 0.000 | NA |
| PCF_EGRESS_Latency | 7.465 | NA |
| PCF_Binding_Svc_Latency | 3.906 | NA |
| PCF_Diam_Connector_Latency | 0.000 | NA |
| PCF_Diam_Gw_Latency | 2195.993 | NA |
| PCF_Usage_Mon | 34719.919 | NA |
| Pcrf_Core_Overall | 1000.000 | NA |
Table 3-78 Average Latency (in milliseconds)
| NF Service Latency | Site1 | Site2 |
|---|---|---|
| UDR_DB_Latency | 0.030 | NA |
| UDR_Req_Latency | 2.470 | NA |
| Diam_Db_Latency | 0.000 | NA |
| Diam_Backend_Latency | 0.000 | NA |
3.1.7 Test Scenario: CnPCRF Voice and Data Call Model with 46.5K TPS per NFSet (with 46.5K TPS on only one instance)
This test run benchmarks the performance and capacity of Policy data call model that is deployed in PCF mode. The PCF application's total traffic (Ingress + Egress) of 46.5K TPS on single site PCF Setup with UDR interworking.
3.1.7.1 Test Case and Setup Details
Test Case Parameters
The following table describes the testcase parameters and their values:
Table 3-79 Testcase Parameters
| Parameter | Value |
|---|---|
| Call Rate (Ingress + Egress) | 46.5K TPS on a single site with UDR interworking |
| ASM | Disable |
| Traffic Ratio | 46.5K TPS on a single site |
| Active User Count | NA |
Policy Project Details:
The Policy Design editor based on the Blockly interface was used to set the Policy project for each of the Policy services. The complexity level of Policy Project configured for this run was High.
Complexity Level Definition:
- Low– No Usage of Loops in Blockly logic, No JSON operations, No complex Java Script code in Object Expression /Statement Expression.
- Medium - Usage of Loops in Blockly logic, Policy Table Wildcard match <= 3 fields, MatchList < 3, 3 < RegEx match < 6
- High - JSON Operations – Custom, complex Java Script code in Object Expression /Statement Expression, Policy Table Wildcard match > 3 fields, MatchLists >= 3, RegEx mat >= 6
Call Model Data:
Following PCF configurations were either enabled or disabled for running this call flow:
Table 3-80 Policy Configurations
| Feature Name | Configuration |
|---|---|
| SAL | Enabled |
| Binding Service | Disabled |
| Congestion and Overload | Disabled |
| PDS Single UEID | Enabled (GPSI) |
| PRIMARYKEY_LOOKUP_ENABLED | Enabled (true) |
| PER | Disabled |
| OCS | Enabled |
| Audit | Enabled |
| PDS Compression scheme | Disabled |
Table 3-81 Call Model Data
| Service Name | Traffic at Site1 | Traffic at Site2 |
|---|---|---|
| Pcrf-Total-Tps ( | 46500 | - |
Infrastructure Details
Infrastructure used for benchmarking Policy performance run is described in this section.
Table 3-82 Hardware Details
| Hardware | Details |
|---|---|
| Environment | BareMetal |
| Server | ORACLE SERVER X9-2 |
| Model | Intel(R) Xeon(R) Platinum 8358 CPU |
| Clock Speed | 2.600 GHz |
| Total Cores | 128 |
| Memory Size | 1024 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 16 |
| Maximum DIMMs | 32 |
| Installed Memory | 1024 GB |
Table 3-83 Software Details
| Aplications | Version |
|---|---|
| Policy | 25.1.200 |
| cnDBTier | 25.1.200 |
| OSO | NA |
| CNE | 23.3.5 |
Table 3-84 Observability Services
| Service Names | Versions |
|---|---|
| OpenSearch | 2.3.0 |
| Fluentd | 1.16.2 |
| Prometheus | 2.51.1 |
| Grafana | 9.5.3 |
| Jaeger | 1.52.0 |
For more information about Policy Installation, see Oracle Communications Cloud Native Core, Converged Policy Installation, Upgrade, and Fault Recovery Guide.
Resource Allocation
Table 3-85 Resource Allocation for CnPCRF
| Service Name | Replicas | CPU Limit per Container (#) | CPU Request per Container (#) | Memory Limit per Container | Memory Request per Container |
|---|---|---|---|---|---|
| NRFsim | 2 | NA | NA | NA | NA |
| Appinfo | 1 | 2 | 1 | 2Gi | 1Gi |
| Bulwark Service | 2 | 8 | 8 | 6Gi | 6Gi |
| Binding Service | 1 | 6 | 6 | 8Gi | 8Gi |
| Diameter Connector | 4 | 4 | 4 | 2Gi | 1Gi |
| CHF Connector User Service | 2 | 6 | 6 | 4Gi | 4Gi |
| Config-server | 2 | 4 | 4 | 2Gi | 512Mi |
| Egress Gateway | 6 | 4 | 4 | 6Gi | 6Gi |
| Ingress Gateway | 2 | 5 | 5 | 6Gi | 6Gi |
| NRF Client NF Discovery | 2 | 4 | 4 | 4Gi | 4Gi |
| NRF Client Management | 2 | 1 | 1 | 1Gi | 1Gi |
| UDR connector User Service | 11 | 6 | 6 | 4Gi | 4Gi |
| Audit Service | 2 | 2 | 2 | 4Gi | 4Gi |
| CM service | 2 | 4 | 2 | 2Gi | 512Mi |
| PolicyDS | 28 | 7 | 7 | 8Gi | 8Gi |
| PRE Service | 20 | 4 | 4 | 4Gi | 4Gi |
| Query Service | 1 | 2 | 1 | 1Gi | 1Gi |
| AM Service | 2 | 8 | 8 | 8Gi | 8Gi |
| SM Service | 2 | 2 | 2 | 2Gi | 2Gi |
| UE Policy Service | 2 | 8 | 8 | 6Gi | 6Gi |
| PCRF Core | 32 | 8 | 8 | 8Gi | 8Gi |
| Perf-info | 2 | 2 | 1 | 2Gi | 1Gi |
| UDMsim | 2 | NA | NA | NA | NA |
| Diameter Gateway | 2 | 4 | 4 | 2Gi | 1Gi |
Table 3-86 Resource Allocation for UDR
| Service Name | Replicas | CPU Limit per Container (#) | CPU Request per Container (#) | Memory Limit per Container | Memory Request per Container |
|---|---|---|---|---|---|
| UDR-Site1-ocudr-alternate-route/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-alternate-route/alternate-route | 2 | 2 | 2 | 2Gi | 2Gi |
| UDR-Site1-ocudr-appinfo/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-appinfo/appinfo | 2 | 1 | 1 | 1Gi | 1Gi |
| UDR-Site1-ocudr-egressgateway/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-egressgateway/egressgateway | 2 | 6 | 6 | 4Gi | 4Gi |
| UDR-Site1-ocudr-ingressgateway-prov/istio-proxy | 2 | 2000m | 2000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-ingressgateway-prov/ingressgateway-prov | 2 | 4 | 4 | 4Gi | 4Gi |
| UDR-Site1-ocudr-ingressgateway-sig/istio-proxy | 9 | 4000m | 4000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-ingressgateway-sig/ingressgateway-sig | 9 | 6 | 6 | 4Gi | 4Gi |
| UDR-Site1-ocudr-nudr-config/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-nudr-config/nudr-config | 2 | 2 | 2 | 2Gi | 2Gi |
| UDR-Site1-ocudr-nudr-config-server/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-nudr-config-server/config-server | 2 | 2 | 2 | 2Gi | 512Mi |
| UDR-Site1-ocudr-nudr-dbcr-auditor-service/istio-proxy | 1 | 1000m | 1000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-nudr-dbcr-auditor-service/nudr-dbcr-auditor-service | 1 | 2 | 2 | 2Gi | 2Gi |
| UDR-Site1-ocudr-nudr-diameterproxy/nudr-diameterproxy | 2 | 6 | 6 | 4Gi | 4Gi |
| UDR-Site1-ocudr-nudr-dr-provservice/istio-proxy | 2 | 2000m | 2000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-nudr-dr-provservice/nudr-dr-provservice | 2 | 4 | 4 | 4Gi | 4Gi |
| UDR-Site1-ocudr-nudr-drservice/istio-proxy | 12 | 3000m | 3000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-nudr-drservice/nudr-drservice | 12 | 6 | 6 | 4Gi | 4Gi |
| UDR-Site1-ocudr-nudr-notify-service/nudr-notify-service | 3 | 6 | 6 | 5Gi | 5Gi |
| UDR-Site1-ocudr-nudr-nrf-client-nfmanagement/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-nudr-nrf-client-nfmanagement/nrf-client-nfmanagement | 2 | 1 | 1 | 1Gi | 1Gi |
| UDR-Site1-ocudr-nudr-ondemand-migration/nudr-ondemand-migration | 2 | 2 | 2 | 2Gi | 2Gi |
| UDR-Site1-ocudr-performance/istio-proxy | 2 | 1000m | 1000m | 1Gi | 1Gi |
| UDR-Site1-ocudr-performance/perf-info | 2 | 1 | 1 | 1Gi | 1Gi |
| UDR-Site1-ocudr-nudr-diam-gateway/nudr-diam-gateway | 2 | 6 | 6 | 5Gi | 5Gi |
Table 3-87 Resource Allocation for cnDBTier at Site1
| Service Name | Replicas | CPU Limit per Container (#) | CPU Request per Container (#) | Memory Limit per Container | Memory Request per Container |
|---|---|---|---|---|---|
| Site1-mysql-cluster-chio-inde-replication-svc/chio-inde-replication-svc | 1 | 3 | 2 | 12Gi | 12Gi |
| Site1-mysql-cluster-chio-inde-replication-svc/db-infra-monitor-svc | 1 | 100m | 100m | 256Mi | 256Mi |
| Site1-mysql-cluster-chio-inde-replication-svc-2/chio-inde-replication-svc-2 | 1 | 2 | 2 | 12Gi | 12Gi |
| Site1-mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 1 | 100m | 100m | 128Mi | 128Mi |
| Site1-mysql-cluster-db-monitor-svc/db-monitor-svc | 1 | 5 | 4 | 4Gi | 4Gi |
| Site1-ndbappmysqld/mysqlndbcluster | 10 | 9 | 9 | 20Gi | 20Gi |
| Site1-ndbappmysqld/db-infra-monitor-svc | 10 | 100m | 100m | 256Mi | 256Mi |
| Site1-ndbappmysqld/init-sidecar | 10 | 300m | 300m | 512Mi | 512Mi |
| Site1-ndbmgmd/mysqlndbcluster | 2 | 5 | 4 | 10Gi | 8Gi |
| Site1-ndbmgmd/db-infra-monitor-svc | 2 | 100m | 100m | 256Mi | 256Mi |
| Site1-ndbmtd/mysqlndbcluster | 6 | 12 | 12 | 125Gi | 125Gi |
| Site1-ndbmtd/db-backup-executor-svc | 6 | 1200m | 1200m | 2560Mi | 2560Mi |
| Site1-ndbmtd/db-infra-monitor-svc | 6 | 100m | 100m | 256Mi | 256Mi |
| Site1-ndbmysqld/mysqlndbcluster | 4 | 5 | 4 | 21Gi | 21Gi |
| Site1-ndbmysqld/init-sidecar | 4 | 300m | 300m | 512Mi | 512Mi |
| Site1-ndbmysqld/db-infra-monitor-svc | 4 | 100m | 100m | 256Mi | 256Mi |
Table 3-88 Resource Allocation for cnDBTier at Site2
| Service Name | Replicas | CPU Limit per Container (#) | CPU Request per Container (#) | Memory Limit per Container | Memory Request per Container |
|---|---|---|---|---|---|
| Site2-mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 1 | 100m | 100m | 128Mi | 128Mi |
| Site2-mysql-cluster-db-monitor-svc/db-monitor-svc | 1 | 5 | 4 | 4Gi | 4Gi |
| Site2-mysql-cluster-inde-chio-replication-svc/inde-chio-replication-svc | 1 | 3 | 2 | 12Gi | 12Gi |
| Site2-mysql-cluster-inde-chio-replication-svc/db-infra-monitor-svc | 1 | 100m | 100m | 256Mi | 256Mi |
| Site2-mysql-cluster-inde-chio-replication-svc-2/inde-chio-replication-svc-2 | 1 | 2 | 2 | 12Gi | 12Gi |
| Site2-ndbappmysqld/mysqlndbcluster | 10 | 9 | 9 | 20Gi | 20Gi |
| Site2-ndbappmysqld/db-infra-monitor-svc | 10 | 100m | 100m | 256Mi | 256Mi |
| Site2-ndbappmysqld/init-sidecar | 10 | 300m | 300m | 512Mi | 512Mi |
| Site2-ndbmgmd/mysqlndbcluster | 2 | 5 | 4 | 10Gi | 8Gi |
| Site2-ndbmgmd/db-infra-monitor-svc | 2 | 100m | 100m | 256Mi | 256Mi |
| Site2-ndbmtd/mysqlndbcluster | 6 | 12 | 12 | 125Gi | 125Gi |
| Site2-ndbmtd/db-backup-executor-svc | 6 | 1200m | 1200m | 2560Mi | 2560Mi |
| Site2-ndbmtd/db-infra-monitor-svc | 6 | 100m | 100m | 256Mi | 256Mi |
| Site2-ndbmysqld/mysqlndbcluster | 4 | 5 | 4 | 21Gi | 21Gi |
| Site2-ndbmysqld/init-sidecar | 4 | 300m | 300m | 512Mi | 512Mi |
| Site2-ndbmysqld/db-infra-monitor-svc | 4 | 100m | 100m | 256Mi | 256Mi |
Table 3-89 cnDBTier (for UDR) Resource Allocation at Site1:
| Service Name | Replicas | CPU Limit per Container (#) | CPU Request per Container (#) | Memory Limit per Container | Memory Request per Container |
|---|---|---|---|---|---|
| Site1-mysql-cluster-chio-inde-replication-svc/chio-inde-replication-svc | 1 | 2 | 2 | 12Gi | 12Gi |
| Site1-mysql-cluster-chio-inde-replication-svc/db-infra-monitor-svc | 1 | 100m | 100m | 256Mi | 256Mi |
| Site1-mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 1 | 100m | 100m | 128Mi | 128Mi |
| Site1-mysql-cluster-db-monitor-svc/db-monitor-svc | 1 | 4 | 4 | 4Gi | 4Gi |
| Site1-ndbappmysqld/mysqlndbcluster | 10 | 6 | 6 | 4Gi | 4Gi |
| Site1-ndbappmysqld/db-infra-monitor-svc | 10 | 100m | 100m | 256Mi | 256Mi |
| Site1-ndbappmysqld/init-sidecar | 10 | 100m | 100m | 256Mi | 256Mi |
| Site1-ndbmgmd/mysqlndbcluster | 2 | 3 | 3 | 10Gi | 10Gi |
| Site1-ndbmgmd/db-infra-monitor-svc | 2 | 100m | 100m | 256Mi | 256Mi |
| Site1-ndbmtd/mysqlndbcluster | 4 | 4 | 4 | 120Gi | 120Gi |
| Site1-ndbmtd/db-backup-executor-svc | 4 | 100m | 100m | 256Mi | 256Mi |
| Site1-ndbmtd/db-infra-monitor-svc | 4 | 100m | 100m | 256Mi | 256Mi |
| Site1-ndbmysqld/mysqlndbcluster | 2 | 4 | 4 | 10Gi | 10Gi |
| Site1-ndbmysqld/init-sidecar | 2 | 100m | 100m | 256Mi | 256Mi |
| Site1-ndbmysqld/db-infra-monitor-svc | 2 | 100m | 100m | 256Mi | 256Mi |
Table 3-90 cnDBTier (for UDR) Resource Allocation at Site2:
| Service Name | Replicas | CPU Limit per Container (#) | CPU Request per Container (#) | Memory Limit per Container | Memory Request per Container |
|---|---|---|---|---|---|
| Site2-mysql-cluster-chio-inde-replication-svc/chio-inde-replication-svc | 1 | 2 | 2 | 12Gi | 12Gi |
| Site2-mysql-cluster-chio-inde-replication-svc/db-infra-monitor-svc | 1 | 100m | 100m | 256Mi | 256Mi |
| Site2-mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 1 | 100m | 100m | 128Mi | 128Mi |
| Site2-mysql-cluster-db-monitor-svc/db-monitor-svc | 1 | 4 | 4 | 4Gi | 4Gi |
| Site2-ndbappmysqld/mysqlndbcluster | 10 | 6 | 6 | 4Gi | 4Gi |
| Site2-ndbappmysqld/db-infra-monitor-svc | 10 | 100m | 100m | 256Mi | 256Mi |
| Site2-ndbappmysqld/init-sidecar | 10 | 100m | 100m | 256Mi | 256Mi |
| Site2-ndbmgmd/mysqlndbcluster | 2 | 3 | 3 | 10Gi | 10Gi |
| Site2-ndbmgmd/db-infra-monitor-svc | 2 | 100m | 100m | 256Mi | 256Mi |
| Site2-ndbmtd/mysqlndbcluster | 4 | 4 | 4 | 120Gi | 120Gi |
| Site2-ndbmtd/db-backup-executor-svc | 4 | 100m | 100m | 256Mi | 256Mi |
| Site2-ndbmtd/db-infra-monitor-svc | 4 | 100m | 100m | 256Mi | 256Mi |
| Site2-ndbmysqld/mysqlndbcluster | 2 | 4 | 4 | 10Gi | 10Gi |
| Site2-ndbmysqld/init-sidecar | 2 | 100m | 100m | 256Mi | 256Mi |
| Site2-ndbmysqld/db-infra-monitor-svc | 2 | 100m | 100m | 256Mi | 256Mi |
3.1.7.2 Results
CPU and Memory Utilization
This section lists the CPU and memory utilization by Policy and cnDBTier microservices.
The average CPU utilization is the ratio between the current usage of resource to the requested resources of the pod, that is, total sum of CPU utilized for service pods / total CPU requested for service pods.
Table 3-91 CPU and Memory Utilization by Policy Microservices
| Service Name | CPU at Site1 | Memory at Site1 | CPU at Site2 | Memory at Site2 |
|---|---|---|---|---|
| NRFsim | ['NA'] | ['NA'] | None | None |
| Appinfo | 2.05% | 12.99% | None | None |
| Bulwark service | 0.04% | 10.09% | None | None |
| Binding service | 0.03% | 7.71% | None | None |
| Diameter Connector | 23.41% | 49.26% | None | None |
| CHF Connector | 0.05% | 14.72% | None | None |
| Config Service | 5.22% | 47.71% | None | None |
| Egress Gateway | 35.83% | 34.24% | None | None |
| Ingress Gateway | 0.19% | 15.71% | None | None |
| NRF Client NF Discovery | 0.09% | 24.73% | None | None |
| NRF Client NF Management | 0.35% | 49.02% | None | None |
| UDR Connector | 14.02% | 41.10% | None | None |
| Audit Service | 1.12% | 29.38% | None | None |
| CM Service | 0.24% | 35.28% | None | None |
| PDS | 34.78% | 51.91% | None | None |
| PRE | 28.38% | 60.54% | None | None |
| Query Service | 0.05% | 31.54% | None | None |
| AM Service | 0.04% | 8.26% | None | None |
| SM Service | 0.10% | 38.28% | None | None |
| UE Service | 0.04% | 10.66% | None | None |
| PCRF Core | 34.23% | 52.03% | None | None |
| PerfInfo | 0.10% | 6.45% | None | None |
| UDMsim | ['NA'] | ['NA'] | None | None |
| Diameter Gateway | 76.15% | 48.80% | None | None |
Table 3-92 CPU and Memory Utilization by cnDBTier Microservices
| Service Name | CPU at Site1 | Memory at Site1 | CPU at Site2 | Memory at Site2 |
|---|---|---|---|---|
| mysql-cluster-chio-inde-replication-svc/chio-inde-replication-svc | 0.20% | 2.38% | None | None |
| mysql-cluster-chio-inde-replication-svc/db-infra-monitor-svc | 2.00% | 19.92% | None | None |
| mysql-cluster-chio-inde-replication-svc-2/chio-inde-replication-svc-2 | 0.30% | 2.24% | None | None |
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 4.00% | 69.53% | None | None |
| mysql-cluster-db-monitor-svc/db-monitor-svc | 0.10% | 12.92% | None | None |
| ndbappmysqld/mysqlndbcluster | 57.55% | 28.25% | None | None |
| ndbappmysqld/db-infra-monitor-svc | 1.90% | 21.68% | None | None |
| ndbappmysqld/init-sidecar | 0.67% | 0.20% | None | None |
| ndbmgmd/mysqlndbcluster | 0.12% | 20.21% | None | None |
| ndbmgmd/db-infra-monitor-svc | 1.00% | 20.70% | None | None |
| ndbmtd/mysqlndbcluster | 37.85% | 90.47% | None | None |
| ndbmtd/db-backup-executor-svc | 0.08% | 2.17% | None | None |
| ndbmtd/db-infra-monitor-svc | 3.00% | 21.22% | None | None |
| ndbmysqld/mysqlndbcluster | 10.77% | 21.37% | None | None |
| ndbmysqld/init-sidecar | 0.67% | 0.20% | None | None |
| ndbmysqld/db-infra-monitor-svc | 3.00% | 23.05% | None | None |
Latency
Table 3-93 Average Latency Observations for CnPCRF In Milliseconds:
| Service Name | Latency at Site1 | Latency at Site2 |
|---|---|---|
| PCRF_Policyds | 12.7 | - |
| PCRF_Binding | 0.00 | - |
| PCRF_Diam_connector | 1.17 | - |
| PCRF_Core_JDBC_Latency | 1.00 | - |
Table 3-94 Average Latency Observations for UDR In Milliseconds:
| Service Name | Latency at Site1 | Latency at Site2 |
|---|---|---|
| UDR_DB_Latency | 0.02 | - |
| UDR_Req_Latency | 1.51 | - |
| Diam_Db_Latency | 0.00 | - |
| Diam_Backend_Latency | 0.00 | - |
Table 3-95 Average Latency Observations for CnPCRF for current percentile In Milliseconds:
| Methods | 50th Percentile at Site1 | 99th Percentile at Site1 | 50th Percentile at Site2 | 99th Percentile at Site2 |
|---|---|---|---|---|
| DIAM | 0.00 | 0.02 | - | - |
Table 3-96 Average Latency Observations for UDR for current percentile In MilliSeconds:
| Methods | 50th Percentile at Site1 | 99th Percentile at Site1 | 50th Percentile at Site2 | 99th Percentile at Site2 |
|---|---|---|---|---|
| IGW_GET | 0.00 | 0.01 | - | - |
| IGW_DELETE | 0.00 | 0.01 | - | - |
| IGW_PUT | 0.00 | 0.00 | - | - |
| EGW_GET | 0.00 | 0.00 | - | - |
| EGW_DELETE | 0.00 | 0.00 | - | - |
| EGW_PUT | 0.00 | 0.01 | - | - |
Table 3-97 Additional Latency
| Latency | Gx Interface | Rx Interface | Sy Interface |
|---|---|---|---|
| Additional Induced Latency | 100ms | 100ms | 100ms |
| Additional PER | 0.01% | 0.01% | 0.01% |
Table 3-98 Latency obervations for cnDBTier services
| Site-Slave Node | cnDBTier Replication Slave Delay (seconds) |
|---|---|
| Site1-ndbmysqld | 0-1 |
| Site2-ndbmysqld | 0-1 |
3.2 PCF Call Models
Following are the cnDBTier Helm Parameters that needs to be configured for all the test scenarios for AM/UE .
Table 3-99 Configuring cnDBTier Helm Parameters
| Helm Parameter | Value |
|---|---|
| db-monitor-svc.restartSQLNodesIfBinlogThreadStalled | true |
| global.additionalndbconfigurations.mysqld.binlog_cache_size | 10485760 |
| global.additionalndbconfigurations.ndb.NoOfFragmentLogFiles | 64 |
| global.additionalndbconfigurations.mysqld.ndb_allow_copying_alter_table | 1 |
| global.additionalndbconfigurations.ndb.ConnectCheckIntervalDelay | 500 |
| global.additionalndbconfigurations.ndb.NoOfFragmentLogParts | 6 |
| global.additionalndbconfigurations.ndb.MaxNoOfExecutionThreads | 10 |
| global.additionalndbconfigurations.ndb.FragmentLogFileSize | 32M |
| db-monitor-svc.binlogthreadstore.capacity | 5 |
| global.additionalndbconfigurations.mysqld.ndb_allow_copying_alter_table | ON |
| global.additionalndbconfigurations.ndb.MaxNoOfOrderedIndexes | 4096 |
| global.additionalndbconfigurations.ndb.binlog_expire_logs_seconds | 259200 |
| global.additionalndbconfigurations.ndb.MaxBufferedEpochBytes | 536870912 |
| global.additionalndbconfigurations.ndb.MaxBufferedEpochs | 1000 |
| global.additionalndbconfigurations.ndb.MaxNoOfUniqueHashIndexes | 4096 |
| global.additionalndbconfigurations.ndb.HeartbeatIntervalDbDb | 500 |
| global.additionalndbconfigurations.ndb.SchedulerExecutionTimer | 100 |
| global.additionalndbconfigurations.ndb.RedoBuffer | 32M |
| global.additionalndbconfigurations.ndb.TotalSendBufferMemory | 3072M |
3.2.1 Test Scenario: PCF AM/UE Call Model on Two-Site Georedundant Setup, with Single-Site Handling 60K TPS Traffic and ASM Enabled
This test was run to benchmark the performance and capacity of PCF call model with 30K traffic on a single site. Binding feature was enabled.
3.2.1.1 Test Case and Setup Details
Testcase Parameters
The following table describes the testcase parameters and their values:
| Parameters | Values |
|---|---|
| Call Rate (Ingress + Egress) | 30K TPS on a single site |
| ASM | Disable |
| Traffic Ratio | IGW-11,EGW-26,Diam-in 9,Diam-Out 3IGW-11 ,EGW-26,Diam-in=9,Diam-out - 3 |
Project Details
The Policy Design editor based on the Blockly interface was used to set the Policy project for each of the Policy services. The complexity level of Policy Project configured for this run was High.
Complexity Level Definition:
- Low – No usage of loops in Blockly logic, no JSON operations, and no complex Java Script code in object expression/statement expression.
- Medium – Usage of loops in Blockly logic, Policy table wildcard match <= 3 fields, MatchList < 3, and 3 < RegEx match < 6
- High – JSON Operations – Custom, complex Java script code in object Expression/statement expression, Policy table wildcard match > 3 fields, MatchLists >= 3, and RegEx mat >= 6
Call Model
Table 3-100 Traffic distribution
| Traffic | TPS |
|---|---|
| Ingress Gateway | 6637 |
| Egress Gateway | 15988 |
| Diam In | 5279 |
| Diam out | 1844 |
| Total | 29747 |
Table 3-101 Traffic distribution to Policy databases
| Number of Entries | TPS |
|---|---|
| occnp_pcf_sm.AppSession | 132704 |
| occnp_pcf_sm.SmPolicyAssociation | 434302 |
| occnp_pcf_sm.SmPolicyAssociation$EX | 0 |
| occnp_policyds.pdssubscriber | 434475 |
| occnp_policyds.pdssubscriber$EX | 0 |
| occnp_policyds.pdsprofile | 324110 |
| occnp_policyds.pdsprofile$EX | 0 |
| occnp_binding.contextbinding | 434668 |
| ooccnp_binding.contextbinding$EX | 0 |
| occnp_binding.dependentcontextbinding | 77294 |
| occnp_binding.dependentcontextbinding$EX | 0 |
Table 3-102 Traffic distribution at Policy services
| Policy Service | Avg TPS/MPS |
|---|---|
| Ingress Gateway(MPS) | 13294.09 |
| Egress Gateway(MPS) | 30644.41 |
| SM Service(MPS) | 46777.97 |
| AM Service(MPS) | 0.00 |
| UE Service(MPS) | 0.00 |
| PDS(MPS) | 13115.32 |
| CHF Connector(MPS) | 6452.53 |
| UDR Connector(MPS) | 3638.04 |
| Binding(MPS) | 0.00 |
Policy Configurations
Following PCF configurations were either enabled or disabled for running this call flow:
Table 3-103 Policy configurations
| Name | Status |
|---|---|
| Bulwark | Disabled |
| Binding | Disabled |
| Subscriber State Variable (SSV) | Enabled |
| Validate_user | Enabled |
| Alternate Route | Enabled |
| Audit | Enabled |
| Compression (Binding & SM Service) | Disabled |
| SYSTEM.COLLISION.DETECTION | Disabled |
Policy Interfaces
Following Policy interfaces were either enabled or disabled for running this call flow:
Table 3-104 Policy interfaces
| Feature Name | Status |
|---|---|
| Subscriber Tracing[For 100 subscriber] | Enabled |
| N36 UDR subscription (N7/N15-Nudr) | Enabled |
| UDR on-demand nrf discovery | NA |
| CHF (SM-Nchf) | Enabled |
| BSF (N7-Nbsf) | NA |
| AMF on demand nrf discovery | NA |
| LDAP (Gx-LDAP) | NA |
| Binding Feature | Disabled |
Infrastructure Details
Table 3-105 Software Details
| Applications | Versions |
|---|---|
| Policy | 24.1.0 |
| cnDBTier | 24.1.0 |
| ASM | Disabled |
| OSO | NA |
| CNE | 23.1.1 |
| CNC Console | 24.1.0 |
Table 3-106 Hardware Details
| Hardware | Details |
|---|---|
| Environment | BareMetal |
| Server | Oracle Server X8-2 |
| Model | Intel(R) Xeon(R) Platinum 8260 |
| Clock Speed | 2.400 GHz |
| Total Cores | 96 |
| Memory Size | 576 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 18 |
| Maximum DIMMs | 24 |
| Installed Memory | 576 GB |
Resource Allocation
Table 3-107 Resource Allocation for Policy Microservices
| Service Name | Replicas | CPU Request per Pod (#) | CPU Limit per Pod (#) | Memory Request per Pod (Gi) | Memory Limit per Pod (Gi) |
|---|---|---|---|---|---|
| Appinfo | 2 | 1 | 1 | 0.5 | 1 |
| Binding Service | 2 | 6 | 6 | 8 | 8 |
| Diameter Connector | 4 | 4 | 4 | 1 | 2 |
| Diameter Gateway | 4 | 4 | 4 | 1 | 2 |
| Audit Service | 1 | 2 | 2 | 4 | 4 |
| CM Service | 1 | 4 | 4 | 0.5 | 2 |
| Config Service | 1 | 4 | 4 | 0.5 | 2 |
| Egress Gateway | 8 | 4 | 4 | 6 | 6 |
| Ingress Gateway | 8 | 4 | 4 | 6 | 6 |
| NRF Client NF Discovery | 1 | 4 | 4 | 0.5 | 2 |
| NRF Client Management | 1 | 1 | 1 | 1 | 1 |
| Query Service | 1 | 2 | 2 | 1 | 1 |
| PRE | 13 | 4 | 4 | 4 | 4 |
| SM Service | 9 | 8 | 8 | 6 | 6 |
| PDS | 8 | 6 | 6 | 6 | 6 |
| UDR Connector | 2 | 6 | 6 | 4 | 4 |
| CHF Connector/ User Service | 2 | 6 | 6 | 4 | 4 |
Table 3-108 CnDBTier Resource Allocation
| Service Name | Replicas | CPU Request per Pod (#) | CPU Limit per Pod (#) | Memory Request per Pod (Gi) | Memory Limit per Pod (Gi) |
|---|---|---|---|---|---|
| ndbappmysqld | 4 | 12 | 12 | 28 | 28 |
| ndbmgmd | 2 | 4 | 4 | 9 | 12 |
| ndbmtd | 8 | 8 | 8 | 42 | 42 |
| db-infra-monitor-svc | 1 | 200 | 200 | 500 | 500 |
| db-backup-manager-svc | 1 | 100 | 100 | 128 | 128 |
3.2.1.2 Results
CPU and Memory Utilization
The following section describes the CPU and memory utilization for Policy and cnDBTier microservices.
The average CPU utilization is the ratio between the current usage of resource to the requested resources of the pod i.e., total sum of CPU utilized for service pods / total CPU requested for service pods.
Table 3-109 CPU and Memory Utilization by Policy Microservices
| App/ Container | CPU | Memory |
|---|---|---|
| AppInfo | 4.00% | 25.40% |
| Diameter Connector | 39.80% | 75.70% |
| CHF Connector | 57.30% | 58.90% |
| Config Service | 2.78% | 3.60% |
| Egress Gateway | 47.50% | 26.90% |
| Ingress Gateway | 53.60% | 42.42% |
| NRF Client NF Discovery | 0.102% | 33.59% |
| NRF Client NF Management | 0.214% | 41.6% |
| UDR Connector | 25.50% | 71.90% |
| Audit Service | 0.669% | 46.3% |
| CM Service | 0.38% | 34.16% |
| PDS | 48.67% | 64.20% |
| PRE Service | 15.9% | 49.6% |
| Query Service | 0.0357% | 25.12% |
| AM Service | 0.02% | 14.96% |
| SM Service | 64.60% | 76.23% |
| UE Service | 0.387% | 34.57% |
Table 3-110 CPU and Memory Utilization by CnDBTier services
| Service | CPU | Memory |
|---|---|---|
| ndbappmysqld/mysqlndbcluster | 51.50% | 44.70% |
| ndbmgmd/db-infra-monitor-svc | 10.30% | 16.90% |
| ndbmtd/mysqlndbcluster | 35.1% | 72.60% |
| ndbmtd/db-backup-executor-svc | 35.1% | 2.32% |
| ndbmtd/db-infra-monitor-svc | 35.1% | 13.60% |
Latency
Table 3-111 Average latency observations
| Scenario | Average Latency (ms) | Peak Latency (ms) |
|---|---|---|
| create-dnn_ims | 54.142 | 66.775 |
| N7-dnn_internet_1st | 20.316 | 22.226 |
| N7-dnn_internet_2nd | 23.517 | 26.133 |
| N7-dnn_internet_3rd | 20.071 | 21.323 |
| delete-dnn_ims | 29.722 | 47.689 |
| Overall | 29.554 | 66.775 |
Table 3-112 Average NF service latency
| NF Service Latency ( In Seconds) | Avg |
|---|---|
| PCF_IGW_Latency | 17.45 |
| PCF_POLICYPDS_Latency | 16.85 |
| PCF_UDRCONNECTOR_Latency | 2.19 |
| PCF_NRFCLIENT_Latency | 0.00 |
| PCF_EGRESS_Latency | 0.51 |
3.2.2 Test Scenario: PCF AM/UE Call Model on Two-site Georedundant Setup, with 54K TPS per NFSet (with 54K TPS on only one instance) (with ASM)
This test run benchmarks the performance and capacity of Policy AM/UE data call model that is deployed in PCF mode. The PCF application handles a total traffic (Ingress + Egress) of 54K TPS on one site and there is no traffic on the other site. Application compression was enabled. For this setup, Aspen Service Mesh (ASM) was enabled between Policy services. In this test setup, immediate reporting and stale request cleanup for UE is enabled for 72 hrs.
3.2.2.1 Test Case and Setup Details
Test Case Parameters
The following table describes the test case parameters and their values:
Table 3-113 Testcase Parameters
| Parameters | Values |
|---|---|
| Call Rate (Ingress + Egress) | 54k on site-1 and no traffic on site-2 |
| ASM | Enabled |
| Traffic Ratio | AM- Create-1, AM Delete-1, AM Update- 0.2, UE Create-1, UE Update -0.2, UE Delete-1, N1N2transfer-1, N1subscribe-1, N1Unsubscribe-1 |
| Active Subscribers | 8 million subscribers and 16 million sessions |
| N1N2 Transfer | 417 |
| N1N2 Subscribe | 417 |
| N1N2 Unsubscribe | 417 |
Policy Project Details:
The Policy Design editor based on the Blockly interface was used to set the Policy project for each of the Policy services. The complexity level of Policy Project configured for this run was High.
Complexity Level Definition:
- Low– No Usage of Loops in Blockly logic, No JSON operations, No complex Java Script code in Object Expression /Statement Expression.
- Medium - Usage of Loops in Blockly logic, Policy Table Wildcard match <= 3 fields, MatchList < 3, 3 < RegEx match < 6
- High - JSON Operations – Custom, complex Java Script code in Object Expression /Statement Expression, Policy Table Wildcard match > 3 fields, MatchLists >= 3, RegEx mat >= 6
Call Model Data
Table 3-114 Traffic distribution per call flow
| Call Flow | Traffic at Site1 |
|---|---|
| TOTAL-IGW | 22.8K |
| TOTAL-EGW | 32.8K (Including N1 Messages) |
| DIAM-GW-IN-TOTAL | NA |
| DIAM-GW-OUT-TOTAL | NA |
| TOTAL-TPS | 54.6K |
Following PCF configurations were either enabled or disabled for running this call flow:
| Feature Name | Configuration |
|---|---|
| Binlog | Enabled |
| Compression | Enabled (AM,UE, PDS) |
| PRIMARYKEY_LOOKUP_ENABLED | Enabled |
| Enable Immediate Report on Subscription | Enabled |
| Congestion Control | Enabled |
| Overload Control | Enabled |
| Immediate Reporting | Enabled |
| POP 25 | Enabled |
| Stale Request Cleanup | Enabled |
| RAB | Enabled |
| SAC | Enabled |
| SINGLE UE ID | Enabled |
| Location Information Header | Enabled |
| UE Stale Cleanup | Disabled |
| Session Limiting | Enabled |
| Collision Detection set to true in Advanced Settings | |
| Pending Transaction | Enabled (Bulwark) |
Infrastructure Details
Infrastructure used for benchmarking Policy performance run is described in this section.
Table 3-115 Hardware Details
| Hardware | Details |
|---|---|
| Environment | BareMetal |
| Server | ORACLE SERVER X9-2 |
| Model | Intel(R) Xeon(R) Platinum 8358 CPU |
| Clock Speed | 2.600 GHz |
| Total Cores | 128 |
| Memory Size | 768 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 24 |
| Maximum DIMMs | 32 |
| Installed Memory | 768 GB |
Table 3-116 Software Details
| Aplications | Version |
|---|---|
| Policy | 25.2.201 |
| cnDBTier | 25.2.200 |
| ASM | 1.14.6 |
| OSO | NA |
| CNE | 25.1.200 |
| CNC Console | 25.2.200 |
Table 3-117 Observability Services
| Service Names | Versions |
|---|---|
| OpenSearch | 2.15.0 |
| Fluentd | 1.17.1 |
| Prometheus | 3.2.0 |
| Grafana | 9.5.3 |
| Jaeger | 1.65.0 |
For more information about Policy Installation, see Oracle Communications Cloud Native Core, Converged Policy Installation, Upgrade, and Fault Recovery Guide.
Resource Allocation
Table 3-118 Resource Allocation for Policy Microservices
| Microservices | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container | Replica |
|---|---|---|---|---|---|---|---|
| Appinfo | 1 | 1 | 1Gi | 512Mi | 1Gi | 78Mi | 2 |
| Appinfo Istio | 2 | 2 | 2 | 2 | - | - | 2 |
| Bulwark service | 8 | 8 | 6 | 6 | 2Gi | 78Mi | 13 |
| Bulwark service Istio | 2500m | 2500m | 4 | 4 | - | - | 13 |
| Alternate Route Service | 2 | 2 | 4 | 2 | 4Gi | 78Mi | 12 |
| Alternate Route Service Istio | 2 | 2 | 2Gi | 2Gi | - | - | 12 |
| CHF Connector | 6 | 6 | 4 | 4 | 4Gi | 78Mi | 1 |
| CHF Connector Istio | 2 | 2 | 2 | 2 | - | - | 1 |
| Config Service | 4 | 2 | 2 | 512Mi | 2Gi | 78Mi | 2 |
| Config Service Istio | 2 | 2 | 2 | 2 | - | - | 2 |
| Egress Gateway | 8 | 8 | 6 | 6 | 6 | 78 | 13 |
| Egress Gateway Istio | 4 | 4 | 2 | 2 | - | - | 13 |
| Ingress Gateway | 5 | 5 | 6 | 6 | 6 | 78 | 18 |
| Ingress Gateway Istio | 2500m | 2500m | 2 | 2 | - | - | 18 |
| NRF Client NF Management | 1 | 1 | 1 | 1 | 1 | 78 | 2 |
| NRF Client NF Management Istio | 2 | 2 | 2 | 2 | - | - | 2 |
| NRF Client NF Discovery | 4 | 4 | 4 | 4 | 1 | 78 | 25 |
| NRF Client NF Discovery Istio | 2 | 2 | 2 | 2 | - | - | 25 |
| UDR Connector | 6 | 6 | 4 | 4 | 1 | 78 | 22 |
| UDR Connector Istio | 2 | 2 | 2 | 2 | - | - | 22 |
| Audit Service | 2 | 2 | 4 | 4 | 1 | 78 | 2 |
| Audit Service Istio | 2 | 2 | 2 | 2 | - | - | 2 |
| CM Service | 4 | 4 | 2 | 2 | 2 | 78 | 2 |
| CM Service Istio | 2 | 2 | 2 | 2 | - | - | 2 |
| PDS | 7 | 7 | 8 | 8 | 4 | 78 | 30 |
| PDS Istio | 3 | 3 | 4 | 4 | - | - | 30 |
| PRE | 4 | 4 | 4 | 4 | 2 | 78 | 24 |
| PRE Istio | 1500m | 1500m | 2 | 2 | - | - | 24 |
| Query Service | 2 | 1 | 1 | 1 | 1 | 78 | 2 |
| Query Service Istio | 2 | 2 | 2 | 2 | - | - | 2 |
| AM Service | 8 | 8 | 8 | 8 | 1 | 78 | 28 |
| AM Service Istio | 3 | 3 | 2 | 2 | - | - | 28 |
| UE Policy Service | 8 | 8 | 6 | 6 | 1 | 78 | 38 |
| UE Policy Service Istio | 2 | 2 | 2 | 2 | - | - | 38 |
| PerfInfo | 1 | 1 | 1 | 512Mi | 1 | 78 | 2 |
| PerfInfo Istio | 1 | 1 | 0.5 | 0.5 | - | - | 2 |
Table 3-119 Resource Allocation for cnDBTier Microservices
| Microservices | Replica | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container |
|---|---|---|---|---|---|---|---|
| Site1-mysql-cluster-db-backup-manager-svc/istio-proxy | 1 | 1 | 1 | 2Gi | 2Gi | NA | NA |
| Site1-mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 1 | 1 | 1 | 1Gi | 1Gi | 1Gi | 90Mi |
| Site1-mysql-cluster-db-monitor-svc/istio-proxy | 1 | 1 | 1 | 2Gi | 2Gi | NA | NA |
| Site1-mysql-cluster-db-monitor-svc/db-monitor-svc | 1 | 4 | 4 | 4Gi | 4Gi | 1Gi | 1000Mi |
| Site1-ndbappmysqld/istio-proxy | 16 | 4 | 4 | 2Gi | 2Gi | NA | NA |
| Site1-ndbappmysqld/mysqlndbcluster | 16 | 12 | 12 | 20Gi | 20Gi | 1Gi | 1000Mi |
| Site1-ndbappmysqld/db-infra-monitor-svc | 16 | 100m | 100m | 256Mi | 256Mi | 512Mi | 512Mi |
| Site1-ndbappmysqld/init-sidecar | 16 | 300m | 300m | 512Mi | 512Mi | 500Mi | 200Mi |
| Site1-ndbmgmd/istio-proxy | 2 | 1 | 1 | 2Gi | 2Gi | NA | NA |
| Site1-ndbmgmd/mysqlndbcluster | 2 | 4 | 4 | 10Gi | 8Gi | 1Gi | 1000Mi |
| Site1-ndbmgmd/db-infra-monitor-svc | 2 | 100m | 100m | 256Mi | 256Mi | 1Gi | 90Mi |
| Site1-ndbmtd/istio-proxy | 10 | 5 | 5 | 2Gi | 2Gi | NA | NA |
| Site1-ndbmtd/mysqlndbcluster | 10 | 12 | 12 | 75Gi | 75Gi | 2Gi | 90Mi |
| Site1-ndbmtd/db-backup-executor-svc | 10 | 1 | 1 | 2Gi | 2Gi | 512Mi | 512Mi |
| Site1-ndbmtd/db-infra-monitor-svc | 10 | 200m | 200m | 256Mi | 256Mi | 512Mi | 90Mi |
| Site1-ndbmysqld/istio-proxy | 6 | 1 | 1 | 2Gi | 2Gi | NA | NA |
| Site1-ndbmysqld/mysqlndbcluster | 6 | 4 | 4 | 24Gi | 24Gi | 1Gi | 1000Mi |
| Site1-ndbmysqld/init-sidecar | 6 | 300m | 300m | 512Mi | 512Mi | 500Mi | 200Mi |
| Site1-ndbmysqld/db-infra-monitor-svc | 6 | 100m | 100m | 256Mi | 256Mi | 512Mi | 512Mi |
3.2.2.2 Results
CPU and Memory Utilization
The following section describes the CPU and memory utilization by Policy and cnDBTier microservices.
Table 3-120 CPU and Memory Utilization by Policy Microservices
| Microservices | CPU utilization | Memory utilization | CPU utilization- ISTIO | Memory utilization- ISTIO |
|---|---|---|---|---|
| ue-service | 15.46% | 28.07% | 28.70% | 8.41% |
| occnp-ingress-gateway | 24.45% | 41.09% | 27.71% | 16.73% |
| bulwark | 19.68% | 13.17% | 34.89% | 3.94% |
| policyds | 32.18%) | 27.98% | 34.44% | 4.54% |
| udr-connector | 32.78% | 55.22% | 52.31% | 8.70% |
| occnp-egress-gateway | 26.30% | 31.55% | 32.27% | 8.67% |
| am-service | 20.23% | 39.07% | 24.60% | 8.54% |
| perf-info | 12.30% | 14.99% | - | - |
| pre-service | 9.43% | 38.80% | 17.44% | 8.26% |
| nrf-client-nfdiscovery | 6.81% | 36.43% | 5.63% | 7.64% |
| config-server | 7.85% | 37.08% | 17.15% | 9.67% |
| appinfo | 4.70% | 29.10% | 0.20% | 7.37% |
| cm-service | 0.61% | 65.26% | 0.90% | 6.81% |
| nrf-client-nfmanagement | 0.30% | 55.66% | 0.12% | 10.62% |
| audit-service | 0.12% | 22.00% | 0.18% | 7.03% |
| queryservice | 0.05% | 33.79% | 0.10% | 7.30% |
| chf-connector | 0.10% | 29.54% | 0.40% | 8.11% |
| occnp-alternate-route | 10.73% | 20.54% | 16.05% | 7.39% |
Table 3-121 CPU and Memory Utilization by cnDBTier Microservices
| Microservices | CPU - Site1 | Memory - Site1 |
|---|---|---|
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 0.45% | 8.69% |
| mysql-cluster-db-monitor-svc/db-monitor-svc | 1.00% | 33.64% |
| mysql-cluster-one-two-c1-replication-svc/one-two-c1-replication-svc | 0.60% | 2.47% |
| mysql-cluster-one-two-c1-replication-svc/db-infra-monitor-svc | 0.50% | 20.70% |
| mysql-cluster-one-two-c2-replication-svc/one-two-c2-replication-svc | 0.91% | 13.33% |
| ndbappmysqld/mysqlndbcluster | 70.96% | 29.98% |
| ndbappmysqld/db-infra-monitor-svc | 1.00% | 21.72% |
| ndbappmysqld/init-sidecar | 3.60% | 0.39% |
| ndbmgmd/mysqlndbcluster | 0.57% | 18.06% |
| ndbmgmd/db-infra-monitor-svc | 1.00% | 20.12% |
| ndbmtd/mysqlndbcluster | 27.91% | 82.66% |
| ndbmtd/db-backup-executor-svc | 0.05% | 2.76% |
| ndbmtd/db-infra-monitor-svc | 7.25% | 20.90% |
| ndbmysqld/mysqlndbcluster | 8.12% | 21.86% |
| ndbmysqld/init-sidecar | 3.25% | 0.59% |
| ndbmysqld/db-infra-monitor-svc | 2.00% | 24.02% |
Latency
Table 3-122 Average Latency Observations (in milliseconds) for the call flows:
| Microservice | Average Latency |
|---|---|
| Ingress | 22.0 |
| PDS | 15.2 |
| UDR | 8.24 |
| NrfClient Discovery | 0.348 |
| Egress | 3.72 |
| AM | 18.1 |
| UE | 20.7 |
Table 3-123 Average Current Percentile Latency Observations (in milliseconds)
| METHODS | 50th Percentile (Site1) | 95th Percentile (Site1) |
|---|---|---|
| UE CREATE | 20.2 | 44.5 |
| UE POST | 29.177 | 84.797 |
| UE DELETE | 4.261 | 9.461 |
| AM CREATE | 28.3 | 60.2 |
| AM POST | 27.561 | 84.200 |
| AM DELETE | 4.260 | 9.260 |
3.2.3 Test Scenario: PCF SM Call Model on Two-Site GeoRedundant Setup with 55K TPS per NFSet (with 55K TPS on only one instance) (with ASM)
This test run benchmarks the performance and capacity of Policy data call model that is deployed in PCF mode. The PCF application handles a total (Ingress+Egress) traffic of 55K TPS, for SM call flows. For this setup Aspen Service Mesh (ASM) was enabled.
3.2.3.1 Test Case and Setup Details
Test Case Parameters
The following table describes the test case parameters and their values:
Table 3-124 Testcase Parameters
| Parameters | Values |
|---|---|
| Call Rate (Ingress + Egress) | 55K TPS on one instance in a two site geo-redundant setup |
| Execution Time | 10 hours |
| ASM | 1.14.6 |
| Traffic Ratio | Old Call Model
|
| Active Subscribers | 15M Subscribers / 30M sessions |
Policy Project Details:
The Policy Design editor based on the Blockly interface was used to set the Policy project for each of the Policy services. The complexity level of Policy Project configured for this run was High.
Complexity Level Definition:
- Low– No Usage of Loops in Blockly logic, No JSON operations, No complex Java Script code in Object Expression /Statement Expression.
- Medium - Usage of Loops in Blockly logic, Policy Table Wildcard match <= 3 fields, MatchList < 3, 3 < RegEx match < 6
- High - JSON Operations – Custom, complex Java Script code in Object Expression /Statement Expression, Policy Table Wildcard match > 3 fields, MatchLists >= 3, RegEx mat >= 6
Call Model Data
Table 3-125 Call Model Data
| Services | TPS |
|---|---|
| Total HTTP Ingress | 41.9K |
| Total HTTP Egress | 6.86K |
| Diameter Gateway In | 4.33K |
| Diameter Gateway Out | 1.77K |
Following PCF configurations were either enabled or disabled for running this call flow:
Table 3-126 PCF Configurations
| Local SSV | Enabled |
| On Demand Discovery UDR (UDR Group ID) | Enabled |
| Application based Compression (SM & PDS) | Enabled |
| Overload Control | Enabled |
| Single_UE_ID_PREFERENTIAL_SEARCH | Enabled |
| Non-SUPI based On-Demand Discovery Caching | Enabled |
| Congestion Control | Enabled |
Infrastructure Details
Table 3-127 Software Details
| Aplications | Version |
|---|---|
| Policy | 25.2.201 |
| cnDBTier | 25.2.201 |
| ASM | 1.14.6 |
| OSO | 25.2.201 |
| CNE | 25.1.200 |
| CNC Console | 25.2.200 |
Table 3-128 Observability Services
| Service Names | Versions |
|---|---|
| OpenSearch | 2.15.0 |
| Fluentd | 1.17.1 |
| Prometheus | 3.2.0 |
| Grafana | 9.5.3 |
| Jaeger | 1.65.0 |
For more information about Policy Installation, see Oracle Communications Cloud Native Core, Converged Policy Installation, Upgrade, and Fault Recovery Guide.
Table 3-129 Hardware Details
| Hardware | Details |
|---|---|
| Environment | BareMetal |
| Server | Oracle Server X9-2 |
| Model | Intel(R) Xeon(R) Platinum 8358 |
| Clock Speed | 2.600 GHz |
| Total Cores | 128 |
| Memory Size | 768 GB |
| Type | DDR4 SDRAM |
| Installed DIMMs | 24 |
| Maximum DIMMs | 32 |
| Installed Memory | 768 GB |
Resource Allocation
Table 3-130 Resource Allocation for Policy Microservices
| Microservices | Replicas | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container |
|---|---|---|---|---|---|---|---|
| ocpcf-appinfo/istio-proxy | 2 | 1.1 | 1.1 | 2Gi | 2Gi | NA | NA |
| ocpcf-appinfo/appinfo | 2 | 1100m | 1100m | 1Gi | 1Gi | 1Gi | 78Mi |
| ocpcf-bulwark/istio-proxy | 22 | 4 | 4 | 2Gi | 2Gi | NA | NA |
| ocpcf-bulwark/bulwark | 22 | 8 | 8 | 6Gi | 6Gi | 2Gi | 78Mi |
| ocpcf-oc-binding/istio-proxy | 11 | 4 | 4 | 2Gi | 2Gi | NA | NA |
| ocpcf-oc-binding/binding | 11 | 6 | 6 | 8Gi | 8Gi | 4Gi | 78Mi |
| ocpcf-oc-diam-connector/istio-proxy | 5 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-oc-diam-connector/diam-connector | 5 | 4 | 4 | 2Gi | 2Gi | 2Gi | 78Mi |
| ocpcf-occnp-alternate-route/istio-proxy | 7 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-occnp-alternate-route/occnp-alternate-route | 7 | 2 | 2 | 4Gi | 4Gi | 1Gi | 78Mi |
| ocpcf-occnp-chf-connector/istio-proxy | 3 | 4 | 4 | 2Gi | 2Gi | NA | NA |
| ocpcf-occnp-chf-connector/user-service | 3 | 6 | 6 | 6Gi | 6Gi | 4Gi | 78Mi |
| ocpcf-occnp-config-server/istio-proxy | 2 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-occnp-config-server/config-server | 2 | 4 | 4 | 2Gi | 2Gi | 2Gi | 78Mi |
| ocpcf-occnp-egress-gateway/istio-proxy | 7 | 4 | 4 | 2Gi | 2Gi | NA | NA |
| ocpcf-occnp-egress-gateway/occnp-egress-gateway | 7 | 8 | 8 | 6Gi | 6Gi | 6Gi | 78Mi |
| ocpcf-occnp-ingress-gateway/istio-proxy | 28 | 4 | 4 | 2Gi | 2Gi | NA | NA |
| ocpcf-occnp-ingress-gateway/occnp-ingress-gateway | 28 | 6 | 6 | 6Gi | 6Gi | 6Gi | 78Mi |
| ocpcf-occnp-nrf-client-nfdiscovery/istio-proxy | 3 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-occnp-nrf-client-nfdiscovery/nrf-client-nfdiscovery | 3 | 4 | 4 | 6Gi | 6Gi | 1Gi | 78Mi |
| ocpcf-occnp-nrf-client-nfmanagement/istio-proxy | 2 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-occnp-nrf-client-nfmanagement/nrf-client-nfmanagement | 2 | 2 | 2 | 1Gi | 1Gi | 1Gi | 78Mi |
| ocpcf-occnp-udr-connector/istio-proxy | 3 | 4 | 4 | 2Gi | 2Gi | NA | NA |
| ocpcf-occnp-udr-connector/user-service | 3 | 6 | 6 | 4Gi | 4Gi | 4Gi | 78Mi |
| ocpcf-ocpm-audit-service/istio-proxy | 2 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-ocpm-audit-service/audit-service | 2 | 2 | 2 | 4Gi | 4Gi | 1Gi | 78Mi |
| ocpcf-ocpm-cm-service/istio-proxy | 2 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-ocpm-cm-service/cm-service | 2 | 4 | 4 | 2Gi | 2Gi | 2Gi | 78Mi |
| ocpcf-ocpm-policyds/istio-proxy | 27 | 4 | 4 | 4Gi | 4Gi | NA | NA |
| ocpcf-ocpm-policyds/policyds | 27 | 8 | 8 | 8Gi | 8Gi | 4Gi | 78Mi |
| ocpcf-ocpm-pre/istio-proxy | 39 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-ocpm-pre/pre-service | 39 | 4 | 4 | 4Gi | 4Gi | 2Gi | 78Mi |
| ocpcf-ocpm-queryservice/istio-proxy | 2 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-ocpm-queryservice/queryservice | 2 | 2 | 2 | 1Gi | 1Gi | 1Gi | 78Mi |
| ocpcf-pcf-smservice/istio-proxy | 63 | 4 | 4 | 2Gi | 2Gi | NA | NA |
| ocpcf-pcf-smservice/sm-service | 63 | 8 | 8 | 10Gi | 10Gi | 4Gi | 78Mi |
| ocpcf-performance/istio-proxy | 2 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-performance/perf-info | 2 | 2 | 2 | 1Gi | 1Gi | 1Gi | 78Mi |
| ocncc-iam-kc/istio-proxy | 1 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocncc-iam-kc/healthcheck | 1 | 1100m | 1100m | 512Mi | 290Mi | 1102Mi | 57Mi |
| ocncc-iam-kc/iam-kc | 1 | 2 | 2 | 2Gi | 2Gi | 1102Mi | 57Mi |
| ocpcf-oc-diam-gateway/istio-proxy | 4 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| ocpcf-oc-diam-gateway/diam-gateway | 4 | 4 | 4 | 2Gi | 2Gi | 2Gi | 78Mi |
Table 3-131 Resource Allocation for cnDBTier Microservices
| Microservices | Replicas | CPU Limit per Container | CPU Request per Container | Memory Limit per Container | Memory Request per Container | Ephemeral Storage Limit per Container | Ephemeral Storage Request per Container |
|---|---|---|---|---|---|---|---|
| mysql-cluster-db-backup-manager-svc/istio-proxy | 1 | 1.1 | 1.1 | 2Gi | 2Gi | NA | NA |
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 1 | 1100m | 1100m | 1Gi | 1Gi | 1Gi | 200Mi |
| mysql-cluster-db-monitor-svc/istio-proxy | 1 | 2 | 2 | 2Gi | 2Gi | NA | NA |
| mysql-cluster-db-monitor-svc/db-monitor-svc | 1 | 4 | 4 | 4Gi | 4Gi | 1Gi | 90Mi |
| ndbappmysqld/istio-proxy | 18 | 4000m | 4000m | 2Gi | 2Gi | NA | NA |
| ndbappmysqld/mysqlndbcluster | 18 | 12 | 12 | 18Gi | 18Gi | 1Gi | 200Mi |
| ndbappmysqld/db-infra-monitor-svc | 18 | 200m | 200m | 256Mi | 256Mi | 1Gi | 200Mi |
| ndbappmysqld/init-sidecar | 18 | 100m | 100m | 256Mi | 256Mi | 500Mi | 200Mi |
| ndbmgmd/istio-proxy | 2 | 1.1 | 1.1 | 2Gi | 2Gi | NA | NA |
| ndbmgmd/mysqlndbcluster | 2 | 3100m | 3100m | 10Gi | 10Gi | 1Gi | 200Mi |
| ndbmgmd/db-infra-monitor-svc | 2 | 200m | 200m | 256Mi | 256Mi | 1Gi | 200Mi |
| ndbmtd/istio-proxy | 10 | 4000m | 4000m | 2Gi | 2Gi | NA | NA |
| ndbmtd/mysqlndbcluster | 10 | 10 | 10 | 116Gi | 116Gi | 2100Mi | 2000Mi |
| ndbmtd/db-backup-executor-svc | 10 | 2 | 2 | 2Gi | 2Gi | 512Mi | 512Mi |
| ndbmtd/db-infra-monitor-svc | 10 | 200m | 200m | 256Mi | 256Mi | 1Gi | 200Mi |
| ndbmysqld/istio-proxy | 12 | 4 | 4 | 2Gi | 2Gi | NA | NA |
| ndbmysqld/mysqlndbcluster | 12 | 4 | 4 | 24Gi | 24Gi | 1Gi | 200Mi |
| ndbmysqld/init-sidecar | 12 | 100m | 100m | 256Mi | 256Mi | 500Mi | 200Mi |
| ndbmysqld/db-infra-monitor-svc | 12 | 200m | 200m | 256Mi | 256Mi | 1Gi | 200Mi |
3.2.3.2 Results
CPU and Memory Utilization
This section lists the CPU utilization for Policy and cnDBTier microservices. The CPU utilization is the ratio between the total CPU utilization against total CPU request (X) versus target CPU Utilization (Y) configured for the pod.
Table 3-132 CPU and Memory Utilization by Policy Microservices
| Microservices | CPU Site1 | Memory Site1 | CPU Site2 | Memory Site2 |
|---|---|---|---|---|
| ocpcf-occnp-egress-gateway/occnp-egress-gateway | 11.92% | 43.79% | ||
| ocpcf-occnp-ingress-gateway/istio-proxy | 22.08% | 10.48% | ||
| ocpcf-occnp-ingress-gateway/occnp-ingress-gateway | 28.20% | 42.19% | ||
| ocpcf-occnp-nrf-client-nfdiscovery/istio-proxy | 1.70% | 9.93% | ||
| ocpcf-occnp-nrf-client-nfdiscovery/nrf-client-nfdiscovery | 1.64% | 14.62% | ||
| ocpcf-occnp-nrf-client-nfmanagement/istio-proxy | 0.18% | 8.30% | ||
| ocpcf-occnp-nrf-client-nfmanagement/nrf-client-nfmanagement | 0.18% | 44.04% | ||
| ocpcf-occnp-udr-connector/istio-proxy | 8.09% | 9.16% | ||
| ocpcf-occnp-udr-connector/user-service | 8.69% | 22.53% | ||
| ocpcf-ocpm-audit-service/istio-proxy | 2.17% | 9.11% | ||
| ocpcf-ocpm-audit-service/audit-service | 1.77% | 36.29% | ||
| ocpcf-ocpm-cm-service/istio-proxy | 0.97% | 8.59% | ||
| ocpcf-ocpm-cm-service/cm-service | 0.61% | 47.95% | ||
| ocpcf-ocpm-policyds/istio-proxy | 19.18% | 5.14% | ||
| ocpcf-ocpm-policyds/policyds | 19.31% | 20.79% | ||
| ocpcf-ocpm-pre/istio-proxy | 15.82% | 9.64% | ||
| ocpcf-ocpm-pre/pre-service | 48.32% | 59.02% | ||
| ocpcf-ocpm-queryservice/istio-proxy | 1.52% | 8.45% | ||
| ocpcf-ocpm-queryservice/queryservice | 3.23% | 37.16% | ||
| ocpcf-pcf-smservice/istio-proxy | 30.98% | 11.29% | ||
| ocpcf-pcf-smservice/sm-service | 39.04% | 30.88% | ||
| ocpcf-performance/istio-proxy | 0.60% | 7.84% | ||
| ocpcf-performance/perf-info | 8.92% | 14.99% | ||
| ocpcf-appinfo/istio-proxy | 0.50% | 9.25% | ||
| ocpcf-appinfo/appinfo | 6.09% | 29.44% | ||
| ocpcf-bulwark/istio-proxy | 24.54% | 9.48% | ||
| ocpcf-bulwark/bulwark | 32.42% | 14.89% | ||
| ocpcf-oc-binding/istio-proxy | 7.81% | 10.54% | ||
| ocpcf-oc-binding/binding | 7.58% | 12.04% | ||
| ocpcf-oc-diam-connector/istio-proxy | 22.95% | 11.05% | ||
| ocpcf-oc-diam-connector/diam-connector | 17.23% | 42.48% | ||
| ocpcf-occnp-alternate-route/istio-proxy | 3.17% | 8.93% | ||
| ocpcf-occnp-alternate-route/occnp-alternate-route | 2.29% | 18.12% | ||
| ocpcf-occnp-chf-connector/istio-proxy | 4.08% | 9.00% | ||
| ocpcf-occnp-chf-connector/user-service | 3.58% | 11.86% | ||
| ocpcf-occnp-config-server/istio-proxy | 11.38% | 12.01% | ||
| ocpcf-occnp-config-server/config-server | 8.91% | 37.11% | ||
| ocpcf-occnp-egress-gateway/istio-proxy | 15.37% | 14.54% |
Table 3-133 CPU and Memory Utilization by cnDBTier Microservices
| Microservices | CPU Site1 | Memory Site1 | CPU Site2 | Memory Site2 |
|---|---|---|---|---|
| mysql-cluster-db-backup-manager-svc/istio-proxy | 0.30% | 8.59% | ||
| mysql-cluster-db-backup-manager-svc/db-backup-manager-svc | 0.09% | 7.32% | ||
| mysql-cluster-db-monitor-svc/istio-proxy | 0.20% | 7.71% | ||
| mysql-cluster-db-monitor-svc/db-monitor-svc | 0.62% | 22.90% | ||
| ndbappmysqld/istio-proxy | 35.95% | 10.53% | ||
| ndbappmysqld/mysqlndbcluster | 36.53% | 27.78% | ||
| ndbappmysqld/db-infra-monitor-svc | 0.97% | 21.29% | ||
| ndbappmysqld/init-sidecar | 2.00% | 0.39% |
Latency
Table 3-134 Average Current Percentile Latency Observations (in milliseconds)
| METHODS | 50th Percentile (Site1) | 99th Percentile (Site1) |
|---|---|---|
| SM POST | 71.538 | 215.557 |
| SM DELETE | 19.334 | 63.399 |