3 UDR Benchmark Testing
This chapter describes UDR, SLF, and EIR test scenarios.
3.1 Test Scenario 1: SLF Call Model: 67K lookup + 1.44K Provisioning TPS (64M Subscribers)
This test scenario describes performance and capacity of SLF functionality offered by UDR and provides the benchmarking results for various deployment sizes.
- Support for Default Group ID in SLF
- Controlled Shutdown of an Instance
- TLS 1.3 Support for Kubernetes API Server Communication
- Error Logging Enhancement
- Error Response Enhancement
- OAuth2
- Alternate Routing Service
- Support for User-Agent Header
- Overload Handling
- Support for LCI and OCI Header
- Network Function Scoring for a Site
- Conflict Resolution
- Ingress Gateway Pod Protection Using Rate Limiting
- Auditor Service
- Provgw global configuration
- Signaling (SLF Look Up): 67K TPS
- Provisioning: 1.44 K
- Total Subscribers: 64 Million
- Profile Size: 450 bytes
Table 3-1 Traffic Model Details
| Request Type | Details | TPS |
|---|---|---|
| Lookup 67k | SLF Lookup GET Requests | 67K |
| Provisioning (1.44K using Provgw) | CREATE | 210 |
| DELETE | 210 | |
| UPDATE | 510 | |
| GET | 510 |
Table 3-2 Testcase Parameters
| Input Parameter Details | Configuration Values |
|---|---|
| SLF Version Tag | 25.2.100 |
| Target TPS | 67K Lookup + 1.44K Provisioning |
| Traffic Profile | SLF 67K Profile |
| Notification Rate | OFF |
| SLF Response Timeout | 900ms |
| Signaling Requests Latency Recorded | 31ms |
| Provisioning Requests Latency Recorded | 50ms |
Table 3-3 Consolidated Resource Requirement per Site
| Resource | CPU | Memory | Ephemeral Storage | PVC |
|---|---|---|---|---|
| cnDBTier | 177 | 531 GB | 69 GB | 1094 GB |
| SLF | 517 | 295 GB | 67 GB | NA |
| ProvGw | 39 | 39 GB | 9 GB | 5 GB |
| Buffer | 50 | 50 GB | 50 GB | 50 GB |
| Total | 783 | 915 GB | 195 GB | 1149 GB |
Note:
All values are inclusive of ASM sidecar.
Table 3-4 OSO Resources (Retention period: 14 days)
| Service | Replicas | CPU Limit | RAM Limit | PVC | Ephemeral storage |
|---|---|---|---|---|---|
| Prometheus (snapshot utility enabled) | 1 | 4 | 8 GB | 75 GB | 12 GB |
| Prometheus AlertManager | 2 | 4 | 4 GB | 10 GB | 1 GB |
| Total | 3 | 12 | 16 GB | 95 GB | 14 GB |
Table 3-5 cnDBTier Resources
| Microservice Name | Container Name | Number of Pods | CPU Allocation Per Pod (cnDBtier1) | Memory Allocation Per Pod (cnDBtier1) | Ephemeral Storage Per Pod | PVC Allocation Per Pod | Total Resources (cnDBtier) |
|---|---|---|---|---|---|---|---|
| Management node (ndbmgmd) | mysqlndbcluster | 2 | 2 CPUs | 12 GB | 1 GB | 16 GB | 6 CPUs
26 GB Ephemeral Storage: 2 GB PVC Allocation: 32 GB |
| istio-proxy | 1 CPUs | 1 GB | |||||
| Data node (ndbmtd) | mysqlndbcluster | 6 | 4 CPUs | 50 GB | 1 GB | 65 GB (Backup: 63 GB) |
42 CPUs 324 GB Ephemeral Storage: 6 GB PVC Allocation: 768 GB |
| istio-proxy | 2 CPUs | 2 GB | |||||
| db-backup-executor-svc | 1 CPU | 2 GB | |||||
| APP SQL node (ndbappmysqld) | mysqlndbcluster | 10 | 6 CPUs | 4 GB | 1 GB | 10 GB |
90 CPUs 60 GB Ephemeral Storage: 10 GB PVC Allocation: 100 GB |
| istio-proxy | 3 CPUs | 2 GB | |||||
| SQL node (Used for Replication) (ndbmysqld) | mysqlndbcluster | 4 | 4 CPUs | 16 GB | 1 GB | 16 GB |
25 CPUs 41 GB Ephemeral Storage: 2 GB PVC Allocation: 32 GB |
| istio-proxy | 2 CPUs | 4 GB | |||||
| init-sidecar | 100m CPU | 256 MB | |||||
| DB Monitor Service (db-monitor-svc) | db-monitor-svc | 1 | 4 CPUs | 4 GB | 1 GB | NA |
5 CPUs 5 GB Ephemeral Storage: 1 GB |
| istio-proxy | 1 CPUs | 1 GB | |||||
| DB Backup Manager Service (backup-manager-svc) | backup-manager-svc | 1 | 1 CPU | 1 GB | 1 GB | NA |
2 CPUs 2 GB Ephemeral Storage: 1 GB |
| istio-proxy | 1 CPUs | 1 GB | |||||
| Replication Service (db-replication-svc) | db-replication-svc | 2 | 2 CPU | 12 GB | 1 GB | 160 GB |
4 CPUs 13 GB Ephemeral Storage: 1 GB PVC Allocation: 160 GB |
| istio-proxy | 200m CPU | 500 MB |
ndb:
annotations:
- sidecar.istio.io/inject: "true"
- proxy.istio.io/config: "{concurrency: 8}"
- sidecar.istio.io/proxyCPU: "2000m"
- sidecar.istio.io/proxyCPULimit: "2000m"
- sidecar.istio.io/proxyMemory: "4Gi"
- sidecar.istio.io/proxyMemoryLimit: "4Gi"
mgm:
annotations:
- sidecar.istio.io/inject: "true"
- proxy.istio.io/config: "{concurrency: 8}"
- sidecar.istio.io/proxyCPU: "1000m"
- sidecar.istio.io/proxyCPULimit: "1000m"
- sidecar.istio.io/proxyMemory: "4Gi"
- sidecar.istio.io/proxyMemoryLimit: "4Gi"
api:
annotations:
- sidecar.istio.io/inject: "true"
- proxy.istio.io/config: "{concurrency: 8}"
- sidecar.istio.io/proxyCPU: "2000m"
- sidecar.istio.io/proxyCPULimit: "2000m"
- sidecar.istio.io/proxyMemory: "4Gi"
- sidecar.istio.io/proxyMemoryLimit: "4Gi"
ndbapp:
annotations:
- sidecar.istio.io/inject: "true"
- proxy.istio.io/config: "{concurrency: 8}"
- sidecar.istio.io/proxyCPU: "3000m"
- sidecar.istio.io/proxyCPULimit: "3000m"
- sidecar.istio.io/proxyMemory: "4Gi"
- sidecar.istio.io/proxyMemoryLimit: "4Gi"Table 3-6 SLF Resources and Usage
| Microservice name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Ephemeral Storage Per Pod | Total Resources |
|---|---|---|---|---|---|---|
| Ingress-gateway-sig | ingressgateway-sig | 26 | 6 CPUs | 4 GB | 1 GB |
260 CPUs 156 GB Memory Ephemeral Storage: 26 GB |
| istio-proxy | 4 CPUs | 2 GB | ||||
| Ingress-gateway-prov | ingressgateway-prov | 2 | 4 CPUs | 4 GB | 1 GB |
12 CPUs 12 GB Ephemeral Storage: 2 GB |
| istio-proxy | 2 CPUs | 2 GB | ||||
| Nudr-dr-service | nudr-drservice | 22 | 6 CPUs | 4 GB | 1 GB |
198 CPUs 132 GB Ephemeral Storage: 22 GB |
| istio-proxy | 3 CPUs | 2 GB | ||||
| Nudr-dr-provservice | nudr-dr-provservice | 2 | 4 CPUs | 4 GB | 1 GB |
12 CPUs 12 GB Ephemeral Storage: 2 GB |
| istio-proxy | 2 CPUs | 2 GB | ||||
| Nudr-nrf-client-nfmanagement | nrf-client-nfmanagement | 2 | 1 CPU | 1 GB | 1 GB |
4 CPUs 4 GB Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 1 GB | ||||
| Nudr-egress-gateway | egressgateway | 2 | 1 CPUs | 1 GB | 1 GB |
4 CPUs 4 GB Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 1 GB | ||||
| Nudr-config | nudr-config | 2 | 2 CPUs | 2 GB | 1 GB |
6 CPUs 6 GB Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 1 GB | ||||
| Nudr-config-server | nudr-config-server | 2 | 2 CPUs | 2 GB | 1 GB |
6 CPUs 6 GB Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 1 GB | ||||
| alternate-route | alternate-route | 2 | 1 CPUs | 1 GB | 1 GB |
4 CPUs 4 GB Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 1 GB | ||||
| app-info | app-info | 2 | 1 CPUs | 1 GB | 1 GB |
4 CPUs 4 GB Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 1 GB | ||||
| perf-info | perf-info | 2 | 1 CPUs | 1 GB | 1 GB |
4 CPUs 4 GB Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 1 GB | ||||
| Nudr-dbcr-auditor | nudr-dbcr-auditor-service | 1 | 2 CPUs | 2 GB | 1 GB |
3 CPUs 3 GB Ephemeral Storage: 1 GB |
| istio-proxy | 1 CPUs | 1 GB |
Note:
The same resources and usage are used for all sites.Table 3-7 Provision Gateway Resources (Provisioning Latency: 50 ms)
| Microservice name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Ephemeral Storage Per Pod | Total Resources |
|---|---|---|---|---|---|---|
| provgw-ingress-gateway | ingressgateway | 2 | 4 CPUs | 4 GB | 1 GB |
10 CPUs 12 GB Memory Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 2 GB | ||||
| provgw-egress-gateway | egressgateway | 2 | 4 CPUs | 4 GB | 1 GB |
10 CPUs 12 GB Memory Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 2 GB | ||||
| provgw-service | provgw-service | 2 | 4 CPUs | 2 GB | 1 GB |
10 CPUs 8 GB Memory Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 2 GB | ||||
| provgw-config | provgw-config | 2 | 2 CPUs | 2 GB | 1 GB |
6 CPUs 6 GB Memory Ephemeral Storage: 2 GB |
| istio-proxy | 1 CPUs | 1 GB | ||||
| provgw-auditor-service | auditor-service | 1 | 2 CPUs | 2 GB | 1 GB |
3 CPUs 4 GB Memory Ephemeral Storage: 1 GB |
| istio-proxy | 1 CPU | 2 GB |
Table 3-8 Result and Observation
| Parameter | Values |
|---|---|
| TPS Achieved | 67K SLF Lookup + 1.44K Provisioning |
| Success Rate | 100% |
| Average SLF processing time for signaling requests | 19ms |
| Average SLF processing time for provisioning requests | 42ms |
3.2 Test Scenario 2: EIR 10K TPS and 10k Diameter S13 Interface TPS (600 K Subscribers)
This test scenario describes performance and capacity improvements of EIR functionality offered by UDR and provides the benchmarking results for various deployment sizes.
- Support for EIR International Mobile Equipment Identity Software Version (IMEISV) Fallback
- Overload Handling
- Ingress Gateway Pod Protection Using Rate Limiting
- Auto Create
- Diameter S13 Interface
- International Mobile Subscriber Identity (IMSI) Fallback Lookup
EIR is benchmarked for compute and storage resources under the following conditions:
- EIR Look Up: 20K
- Total Subscribers: 600 K
- Profile Size: 130 bytes
The following table describes the benchmarking parameters and their values:
Table 3-9 Traffic Model Details
| Request Type | Details | TPS |
|---|---|---|
| EIR GET | N17 GET Request | 10K |
| ECR message | Diameter S13 Interface ECR | 10K |
The following table describes the testcase parameters and their values:
Table 3-10 Testcase Parameters
| Input Parameter Details | Configuration Values |
|---|---|
| UDR Version Tag | 25.2.100 |
| Target TPS | 20K Lookup |
| Traffic Profile | 20K |
| EIR Response Timeout | 2.7s |
| Client Timeout | 10s |
| N17 Latency: | 6 ms |
| S13 Latency | 7 ms |
Table 3-11 Consolidated Resource Requirement per Site
| Resource | CPUs | Memory | Ephemeral Storage | PVC |
|---|---|---|---|---|
| cnDBTier | 55 | 141 GB | 16 GB | 516 GB |
| EIR | 131 | 97 GB | 34 GB | NA GB |
| Buffer | 50 | 50 GB | 20 GB | 50 GB |
| Total | 236 | 288 GB | 70 GB | 566 GB |
Table 3-12 cnDBTier Resources
| Micro service name | Container name | Number of Pods (cnDBTier1) | CPU Allocation Per Pod (cnDBTier1) | Memory Allocation Per Pod (cnDBTier1) | PVC Allocation Per Pod | Ephemeral Storage Per Pod | Total Resources (cnDBTier1) |
|---|---|---|---|---|---|---|---|
| Management node | mysqlndbcluster | 2 | 2 CPUs | 12 GB | 16 GB | 1 GB |
4 CPU 24 GB Memory Ephemeral Storage: 2 GB PVC Allocation: 32 GB |
| Data node | mysqlndbcluster | 4 | 4 CPUs | 20 GB | 28 GB
Backup: 56 GB |
1 GB |
16 CPU 80 GB Memory Ephemeral Storage: 4 GB PVC Allocation: 336 GB |
| APP SQL node | mysqlndbcluster | 5 | 4 CPUs | 4 GB | 10 GB | 1 GB |
20 CPU 20 GB Memory Ephemeral Storage: 5 GB PVC Allocation: 50 GB |
| SQL node (Used for Replication) | mysqlndbcluster | 2 | 4 CPUs | 5 GB | 16 GB | 1 GB |
8 CPU 10 GB Memory Ephemeral Storage: 2 GB PVC Allocation: 32 GB |
| DB Monitor Service (db-monitor-svc) | db-monitor-svc | 1 | 4 CPUs | 4 GB | NA | 1 GB |
4 CPUs 4 GB Memory Ephemeral Storage: 1 GB |
| DB Backup Manager Service (backup-manager-svc) | backup-manager-svc | 1 | 100m CPUs | 128 MB | NA | 1 GB |
100m CPUs 128 MB Memory Ephemeral Storage: 1 GB |
| Replication Service (db-replication-svc) | db-replication-svc | 1 | 2 CPU | 2 GB | NA | 1 GB |
2 CPUs 2 MB Memory Ephemeral Storage: 1 GB PVC Allocation: 66 GB |
Table 3-13 EIR Resources
| Micro service name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Ephemeral Storage Per Pod | Total Resources |
|---|---|---|---|---|---|---|
| Ingress-gateway-sig | Ingress-gateway-sig | 4 | 6 CPUs | 4 GB | 1 GB |
24 CPUs 16 GB Memory Ephemeral Storage: 4 GB |
| Ingress-gateway-prov | Ingress-gateway-prov | 2 | 4 CPUs | 4 GB | 1 GB |
8 CPUs 8 GB Memory Ephemeral Storage: 2 GB |
| Nudr-dr-service | nudr-drservice | 3 | 6 CPUs | 4 GB | 1 GB |
18 CPUs 12 GB Memory Ephemeral Storage: 3 GB |
| Nudr-dr-provservice | nudr-dr-provservice | 2 | 4 CPUs | 4 GB | 1 GB |
8 CPUs 8 GB Memory Ephemeral Storage: 2 GB |
| Nudr-diam-gateway | nudr-diam-gateway | 2 | 6 CPUs | 4 GB | 1 GB |
12 CPUs 8 GB Memory Ephemeral Storage: 2 GB |
| Nudr-diameterproxy | nudr-diameterproxy | 8 | 6 CPUs | 4 GB | 1 GB |
48 CPUs 32 GB Memory Ephemeral Storage: 8 GB |
| Nudr-config | nudr-config | 2 | 1 CPUs | 1 GB | 1 GB |
2 CPUs 2 GB Memory Ephemeral Storage: 2 GB |
| Nudr-config-server | nudr-config-server | 2 | 1 CPUs | 1 GB | 1 GB |
2 CPU 2 GB Memory Ephemeral Storage: 2 GB |
| Alternate-route | alternate-route | 2 | 1 CPUs | 1 GB | 1 GB |
2 CPU 2 GB Memory Ephemeral Storage: 2 GB |
| Nudr-nrf-client-nfmanagement-service | nrf-client-nfmanagement | 2 | 1 CPUs | 1 GB | 1 GB |
2 CPU 2 GB Memory Ephemeral Storage: 2 GB |
| App-info | app-info | 2 | 1 CPUs | 1 GB | 1 GB |
2 CPU 2 GB Memory Ephemeral Storage: 2 GB |
| Perf-info | perf-info | 2 | 1 CPUs | 1 GB | 1 GB |
2 CPU 2 GB Memory Ephemeral Storage: 2 GB |
| Nudr-dbcr-auditor-service | nudr-dbcr-auditor-service | 1 | 1 CPUs | 1 GB | 1 GB |
1 CPU 1 GB Memory Ephemeral Storage: 1 GB |
The following table provides observation data for the performance test that can be used for the benchmark testing to scale up EIR performance:
Table 3-14 Result and Observation
| Parameter | Values |
|---|---|
| TPS Achieved | 20K |
| Success Rate | 100% |
| Average EIR processing time (Request and Response) | 9 ms |
3.3 Test Scenario 3: 25K N36 and 600 Provisioning (SOAP) Profile (35M Subscribers)
You can perform benchmark tests on UDR for compute and storage resources by considering the following conditions:
- Signaling: 25K TPS
- Provisioning: 600 TPS
- Total Subscribers: 35 Million
- Auto Enrollment and Auto Create Features
- Overload Handling
- ETag (Entity Tag)
- Ingress Gateway Pod Protection Using Rate Limiting
- Support for User-Agent Header
- 3gpp-Sbi-Correlation-Info Header
- Suppress Notification
- Support for Post Operation for an Existing Subscription
- Subscriber Activity Logging
The following table describes the benchmarking parameters and their values:
Table 3-15 Traffic Model Details
| Request Type | Details | TPS |
|---|---|---|
| N36 traffic 25K TPS | subs-to-notify POST | 5K (20%) |
| sm-data GET | 5K (20%) | |
| subs-to-notify DELETE | 5K (20% | |
| sm-data PATCH | 10K (40%) | |
| SOAP PROVISIONING 600 TPS | GET | 100 |
| UPDATE QUOTA | 50 | |
| UPDATE DYNAMIC QUOTA | 50 | |
| UPDATE STATE | 100 | |
| UPDATE SUBSCRIBER | 100 | |
| CREATE SUBSCRIBER | 100 | |
| DELETE SUBSCRIBER | 100 |
Table 3-16 Testcase Parameters
| Input Parameter Details | Configuration Values |
|---|---|
| UDR Version Tag | 25.2.100 |
| Target TPS | 25K TPS Signaling + 600 SOAP |
| Notification Rate | 300 |
| UDR Response Timeout | 2.7s |
| Signaling Requests Latency Recorded | 25ms |
| Provisioning Requests Latency Recorded | 40ms |
Table 3-17 Consolidated Resource Requirement per Site
| Resource | CPU | Memory | Ephemeral Storage | PVC |
|---|---|---|---|---|
| cnDBTier | 163 CPUs | 640 GB | 29 GB | 1955 GB |
| UDR | 257 CPUs | 184 GB | 55 GB | NA |
| PROVGW | 28 | 28 | 10 | NA |
| Buffer | 50 CPUs | 50 GB | 20 GB | 200 GB |
| Total | 498 CPUs | 902 GB | 114 GB | 2155 GB |
Table 3-18 cnDBTier Resources
| Microservice name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Ephemeral Storage Per Pod | PVC Allocation Per Pod | Total Resources |
|---|---|---|---|---|---|---|---|
| Management node (ndbmgmd) | mysqlndbcluster | 2 | 2 CPUs | 9 GB | 1 GB | 15 GB |
4 CPUs 18 GB Ephemeral Storage: 2 GB PVC Allocation: 30 GB |
| Data node (ndbmtd) | mysqlndbcluster | 4 | 9 CPUs | 124 GB | 1 GB | 132 GB
Backup: 220 GB |
36 CPUs 496 GB Ephemeral Storage: 4 GB PVC Allocation: 1408 GB |
| APP SQL node (ndbappmysqld) | mysqlndbcluster | 18 | 6 CPUs | 4 GB | 1 GB | 4 GB |
108 CPUs 72 GB Ephemeral Storage: 18 GB PVC Allocation: 72 GB |
| SQL node (ndbmysqld,used for replication) | mysqlndbcluster | 2 | 4 CPUs | 24 GB | 1 GB | 110 GB |
8 CPUs 48 GB Ephemeral Storage: 2 GB PVC Allocation: 220 GB |
| DB Monitor Service (db-monitor-svc) | db-monitor-svc | 1 | 4 CPUs | 4 GB | 1 GB | NA |
4 CPU 4 MB Ephemeral Storage: 1 GB |
| DB Backup Manager Service (backup-manager-svc) | backup-manager-svc | 1 | 100 millicores CPUs | 128 MB | 1 GB | NA |
1 CPU 128 MB Ephemeral Storage: 1 GB |
| Replication service (Multi site cases) | replication-svc | 1 | 2 CPUs | 2 GB | 1 GB | 225 GB |
2 CPUs 2 GB Ephemeral Storage: 1 GB PVC Allocation: 225 GB |
Table 3-19 UDR Resources (Average Latency: 33ms (N36/PROV) and N36: 25ms / PROV: 40ms
| Micro service name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Ephemeral Storage Per Pod | Total Resources |
|---|---|---|---|---|---|---|
| Ingress-gateway-sig | ingressgateway-sig | 13 | 6 CPUs | 4 GB | 1 GB |
78 CPUs 52 GB Ephemeral Storage: 13 GB |
| Ingress-gateway-prov | ingressgateway-prov | 2 | 4 CPUs | 4 GB | 1 GB |
8 CPUs 8 GB Ephemeral Storage: 2 GB |
| Nudr-dr-service | nudr-drservice | 20 | 6 CPUs | 4 GB | 1 GB |
120 CPUs 80 GB Ephemeral Storage: 20 GB |
| Nudr-dr-provservice | nudr-dr-provservice | 2 | 4 CPUs | 4 GB | 1 GB |
8 CPUs 8 GB Ephemeral Storage: 2 GB |
| Nudr-notify-service | nudr-notify-service | 3 | 6 CPUs | 5 GB | 1 GB |
18 CPUs 15 GB Ephemeral Storage: 3 GB |
| Nudr-egress-gateway | egressgateway | 2 | 6 CPUs | 4 GB | 1 GB |
12 CPUs 8 GB Ephemeral Storage: 2 GB |
| Nudr-config | nudr-config | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Nudr-config-server | nudr-config-server | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Alternate-route | alternate-route | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Nudr-nrf-client-nfmanagement-service | nrf-client-nfmanagement | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| App-info | app-info | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Perf-info | perf-info | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Nudr-dbcr-auditor-service | nudr-dbcr-auditor-service | 1 | 1 CPU | 1 GB | 1 GB |
1 CPU 1 GB Ephemeral Storage: 1 GB |
Table 3-20 Provisioning Gateway Resources
| Micro service name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Total Resources |
|---|---|---|---|---|---|
| provgw-ingress-gateway | ingressgateway | 2 | 4 CPUs | 4 GB |
8 CPUs 8 GB Ephemeral Storage: 2 GB |
| provgw-egress-gateway | egressgateway | 2 | 4 CPUs | 4 GB |
8 CPUs 8 GB Ephemeral Storage: 2 GB |
| provgw-service | provgw-service | 4 | 2 CPUs | 2 GB |
8 CPUs 8 GB Ephemeral Storage: 4 GB |
| provgw-config | provgw-config | 2 | 2 CPUs | 2 GB |
4 CPUs 4 GB Memory Ephemeral Storage: 2 GB |
Table 3-21 Result and Observation
| Parameter | Values |
|---|---|
| TPS Achieved | 25K Signaling + 600 |
| UDR Request Average Latency | 33ms |
| Success rate | 100% |
3.4 Test Scenario 4: 17.2K N36 + 10K SH and 600 Provisioing (SOAP) Profile (35M Subscribers)
You can perform benchmark tests on UDR for compute and storage resources by considering the following conditions:
- Signaling : 17.2K N36 + 10K SH
- Provisioning: 600 TPS
- Total Subscribers: 35 Million
- Auto Enrollment and Auto Create Features
- Overload Handling
- ETag (Entity Tag)
- Ingress Gateway Pod Protection Using Rate Limiting
- Support for User-Agent Header
- 3gpp-Sbi-Correlation-Info Header
- Suppress Notification
- Subscriber Activity Logging
- Diameter Gateway Pod Congestion Control
- Support for Post Operation for an Existing Subscription
The following table describes the benchmarking parameters and their values:
Table 3-22 Traffic Model Details
| Request Type | Details | TPS |
|---|---|---|
| N36 17.2K TPS | subs-to-notify POST | 5K (20%) |
| sm-data GET | 5K (20%) | |
| subs-to-notify DELETE | 5K (20%) | |
| sm-data PATCH | 5K (20%) | |
| SH 10K TPS | UDR | 4K |
| PUR | 1.2K | |
| SNR | 4.8K | |
| SH PNR 1.2K TPS | PNR | 1.2K |
| SOAP PROVISIONING 600 TPS | GET | 100 |
| UPDATE QUOTA | 50 | |
| UPDATE DYNAMIC QUOTA | 50 | |
| UPDATE STATE | 100 | |
| UPDATE SUBSCRIBER | 100 | |
| CREATE SUBSCRIBER | 100 | |
| DELETE SUBSCRIBER | 100 |
Table 3-23 Testcase Parameters
| Input Parameter Details | Configuration Values |
|---|---|
| UDR Version Tag | 25.2.100 |
| Target TPS | 17.2K N36 + 10K SH + 600 SOAP |
| Notification Rate | 1.2K |
| UDR Response Timeout | 2.7s |
| Signaling Requests Latency Recorded | 25ms |
| Provisioning Requests Latency Recorded | 30ms |
| Diameter (SH) Requests Latency Recorded | 18ms |
Table 3-24 Consolidated Resource Requirement per Site
| Resource | CPU | Memory | Ephemeral Storage | PVC |
|---|---|---|---|---|
| cnDBTier | 139 CPUs | 625 GB | 25 GB | 1939 |
| UDR | 281 CPUs | 201 GB | 60 GB | NA |
| PROVGW | 28 | 28 | 10 | NA |
| Buffer | 50 CPUs | 50 GB | 20 GB | 200 GB |
| Total | 498 CPUs | 901 GB | 115 GB | 2139 GB |
Table 3-25 cnDBTier Resource
| Microservice name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Ephemeral Storage Per Pod | PVC Allocation Per Pod | Total Resources |
|---|---|---|---|---|---|---|---|
| Management node (ndbmgmd) | mysqlndbcluster | 2 | 2 CPUs | 9 GB | 1 GB | 15 GB |
4 CPUs 18 GB Ephemeral Storage: 2 GB PVC Allocation: 30 GB |
| Data node (ndbmtd) | mysqlndbcluster | 4 | 9 CPUs | 124 GB | 1 GB | 132 GB
Backup: 220 GB |
36 CPUs 496 GB Ephemeral Storage: 4 GB PVC Allocation: 1408 GB |
| APP SQL node (ndbappmysqld) | mysqlndbcluster | 14 | 6 CPUs | 4 GB | 1 GB | 4 GB |
84 CPUs 56 GB Ephemeral Storage: 14 GB PVC Allocation: 56 GB |
| SQL node (ndbmysqld,used for replication) | mysqlndbcluster | 2 | 4 CPUs | 24 GB | 1 GB | 110 GB |
8 CPUs 48 GB Ephemeral Storage: 2 GB PVC Allocation: 220 GB |
| DB Monitor Service | db-monitor-svc | 1 | 4 CPUs | 4 GB | 1 GB | NA |
4 CPU 4 MB Ephemeral Storage: 1 GB |
| DB Backup Manager Service | backup-manager-svc | 1 | 100 millicores CPUs | 128 MB | 1 GB | NA |
1 CPU 128 MB Ephemeral Storage: 1 GB |
| Replication service (Multi site cases) | replication-svc | 1 | 2 CPUs | 2 GB | 1 GB | 225 GB |
2 CPUs 2 GB Ephemeral Storage: 1 GB PVC Allocation: 225 GB |
Table 3-26 UDR Resources (Average Latency: 25ms [25ms (N36) / 18ms (SH) / 30ms Provisioning]).
| Micro service name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Ephemeral Storage Per Pod | Total Resources |
|---|---|---|---|---|---|---|
| Ingress-gateway-sig | ingressgateway-sig | 9 | 6 CPUs | 4 GB | 1 GB |
54 CPUs 36 GB Ephemeral Storage: 9 GB |
| Ingress-gateway-prov | ingressgateway-prov | 2 | 4 CPUs | 4 GB | 1 GB |
8 CPUs 8 GB Ephemeral Storage: 2 GB |
| Nudr-dr-service | nudr-drservice | 17 | 6 CPUs | 4 GB | 1 GB |
102 CPUs 68 GB Ephemeral Storage: 17 GB |
| Nudr-dr-provservice | nudr-dr-provservice | 2 | 4 CPUs | 4 GB | 1 GB |
8 CPUs 8 GB Ephemeral Storage: 2 GB |
| Nudr-notify-service | nudr-notify-service | 3 | 6 CPUs | 5 GB | 1 GB |
18 CPUs 15 GB Ephemeral Storage: 3 GB |
| Nudr-egress-gateway | egressgateway | 2 | 6 CPUs | 4 GB | 1 GB |
12 CPUs 8 GB Ephemeral Storage: 2 GB |
| Nudr-diam-gateway | nudr-diam-gateway | 2 | 6 CPUs | 5 GB | 1 GB |
12 CPUs 10 GB Ephemeral Storage: 2 GB |
| Nudr-diameterproxy | nudr-diameterproxy | 9 | 6 CPUs | 4 GB | 1 GB |
54 CPUs 36 GB Ephemeral Storage: 9 GB |
| Nudr-config | nudr-config | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Nudr-config-server | nudr-config-server | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Alternate-route | alternate-route | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Nudr-nrf-client-nfmanagement-service | nrf-client-nfmanagement | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| App-info | app-info | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Perf-info | perf-info | 2 | 1 CPU | 1 GB | 1 GB |
2 CPUs 2 GB Ephemeral Storage: 2 GB |
| Nudr-dbcr-auditor-service | nudr-dbcr-auditor-service | 1 | 1 CPU | 1 GB | 1 GB |
1 CPU 1 GB Ephemeral Storage: 1 GB |
Table 3-27 Provisioning Gateway Resources
| Micro service name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Total Resources |
|---|---|---|---|---|---|
| provgw-ingress-gateway | ingressgateway | 2 | 4 CPUs | 4 GB |
8 CPUs 8 GB Ephemeral Storage: 2 GB |
| provgw-egress-gateway | egressgateway | 2 | 4 CPUs | 4 GB |
8 CPUs 8 GB Ephemeral Storage: 2 GB |
| provgw-service | provgw-service | 4 | 2 CPUs | 2 GB |
8 CPUs 8 GB Ephemeral Storage: 4 GB |
| provgw-config | provgw-config | 2 | 2 CPUs | 2 GB |
4 CPUs 4 GB Memory Ephemeral Storage: 2 GB |
Table 3-28 Result and Observation
| Parameter | Values |
|---|---|
| TPS Achieved | 17.2K N36 + 10K SH + 600 |
| UDR Request Average Latency | 25ms |
| Success rate | 100% |