3 UDR Benchmark Testing
This chapter describes UDR, SLF, and EIR test scenarios.
3.1 Test Scenario 1: SLF Call Deployment Model
This section provides information about SLF call deployment model test scenarios.
3.1.1 SLF Call Model: 50K 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.
- Ingress Gateway Pod Protection Using Rate Limiting
- OAuth2
- Alternate Routing Service
- Support for User-Agent Header
- Overload Handling
- Support for LCI and OCI Header
- Auto Create
- Network Function Scoring for a Site
- Conflict Resolution
- Controlled Shutdown of an Instance
- Error Response and Logging Enhancement
- Auditor Service
- Provgw global configuration
- Signaling (SLF Look Up): 50K TPS
- Provisioning: 1.44 K
- Total Subscribers: 64 Million
- Profile Size: 450 bytes
Table 3-1 Traffic Model Details
Request Type | Details | TPS |
---|---|---|
Lookup 50k | SLF Lookup GET Requests | 50K |
Provisioning (1.44K using Provgw) | CREATE | 210 |
DELETE | 210 | |
UPDATE | 510 | |
GET | 510 |
Table 3-2 Testcase Parameters
Input Parameter Details | Configuration Values |
---|---|
UDR Version Tag | 25.1.200 |
Target TPS | 50K Lookup + 1.44K Provisioning |
Traffic Profile | SLF 50K Profile |
Notification Rate | OFF |
UDR Response Timeout | 900ms |
Client Timeout | 30s |
Signaling Requests Latency Recorded on Client | 17ms |
Provisioning Requests Latency Recorded on Client | 38ms |
Table 3-3 Consolidated Resource Requirement
Resource | CPU | Memory | Ephemeral Storage | PVC |
---|---|---|---|---|
cnDBTier | 134 | 453 GB | 20 GB | 1064 GB |
SLF | 384 | 225 GB | 53 GB | NA |
ProvGw | 39 | 39 GB | 9 GB | NA |
Buffer | 50 | 50 GB | 50 GB | 50 GB |
Total | 607 | 767 GB | 132 GB | 1114 GB |
Note:
All values are inclusive of ASM sidecar.
Table 3-4 OSO Resources (Retention period: 14 days)
Service | CPU Limit | RAM Limit | PVC |
---|---|---|---|
Prometheus (snapshot utility enabled) | 4 | 8 GB | 75 GB |
Prometheus AlertManager | 4 | 4 GB | NA |
Total | 8 | 12 GB | 75 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 | 7 | 6 CPUs | 4 GB | 1 GB | 10 GB |
63 CPUs 42 GB Ephemeral Storage: 7 GB PVC Allocation: 70 GB |
istio-proxy | 3 CPUs | 2 GB | |||||
SQL node (Used for Replication) (ndbmysqld) | mysqlndbcluster | 2 | 4 CPUs | 16 GB | 1 GB | 16 GB |
13 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 | 1 | 2 CPU | 12 GB | 1 GB | 160 GB |
3 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 | 19 | 6 CPUs | 4 GB | 1 GB |
190 CPUs 95 GB Memory Ephemeral Storage: 19 GB |
istio-proxy | 4 CPUs | 1 GB | ||||
Ingress-gateway-prov | ingressgateway-prov | 2 | 4 CPUs | 4 GB | 1 GB |
12 CPUs 10 GB Ephemeral Storage: 2 GB |
istio-proxy | 2 CPUs | 1 GB | ||||
Nudr-dr-service | nudr-drservice | 15 | 6 CPUs | 4 GB | 1 GB |
135 CPUs 75 GB Ephemeral Storage: 15 GB |
istio-proxy | 3 CPUs | 1 GB | ||||
Nudr-dr-provservice | nudr-dr-provservice | 2 | 4 CPUs | 4 GB | 1 GB |
12 CPUs 10 GB Ephemeral Storage: 2 GB |
istio-proxy | 2 CPUs | 1 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 Site2.Table 3-7 Provision Gateway Resources (Provisioning Latency: 38 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 10 GB Memory Ephemeral Storage: 2 GB |
istio-proxy | 1 CPUs | 1 GB | ||||
provgw-egress-gateway | egressgateway | 2 | 4 CPUs | 4 GB | 1 GB |
10 CPUs 10 GB Memory Ephemeral Storage: 2 GB |
istio-proxy | 1 CPUs | 1 GB | ||||
provgw-service | provgw-service | 2 | 4 CPUs | 4 GB | 1 GB |
10 CPUs 10 GB Memory Ephemeral Storage: 2 GB |
istio-proxy | 1 CPUs | 1 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 3 GB Memory Ephemeral Storage: 1 GB |
istio-proxy | 1 CPU | 1 GB |
Table 3-8 Result and Observation
Parameter | Values |
---|---|
TPS Achieved | 50K 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.
- Auto Create
- Diameter S13 Interface
- Subscriber Activity Logging
- 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.1.200 |
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
Resource | CPUs | Memory | Ephemeral Storage | PVC |
---|---|---|---|---|
cnDBTier | 48 | 664 GB | 21 GB | 1893 GB |
EIR | 215 | 155 GB | 48 GB | NA GB |
Buffer | 50 | 50 GB | 20 GB | 200 GB |
Total | 362 | 814 GB | 89 GB | 2015 GB |
Table 3-12 cnDBTier Resources
Micro service name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod (cnDBTier1) | Total Resources (cnDBTier1) |
---|---|---|---|---|---|
Management node | mysqlndbcluster | 2 | 2 CPUs | 12 GB |
4 CPU 23 GB Memory Ephemeral Storage: 2 GB PVC Allocation: 32 GB |
Data node | mysqlndbcluster | 4 | 4 CPUs | 20 GB |
16 CPU 80 GB Memory Ephemeral Storage: 4 GB PVC Allocation: 336 GB |
APP SQL node | mysqlndbcluster | 5 | 4 CPUs | 4 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 |
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 |
4 CPUs 4 GB Memory Ephemeral Storage: 1 GB |
DB Backup Manager Service (backup-manager-svc) | backup-manager-svc | 1 | 100m CPUs | 128 MB |
100m CPUs 128 MB Memory Ephemeral Storage: 1 GB |
Replication Service (db-replication-svc) | db-replication-svc | 1 | 2 CPU | 2 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: SOAP and Diameter Deployment Model (1M - 10M Subscribers)
2K SOAP provisioning TPS for ProvGw for Medium profile + Diameter 25K with Large profile
- TLS
- OAuth2.0
- Header Validations like XFCC, server header, and user agent header
UDR is benchmarked for compute and storage resources under following conditions:
- Signaling : 10K TPS
- Provisioning: 2K TPS
- Total Subscribers: 1M - 10M range used for Diameter Sh and 1M range used for SOAP/XML
- Profile Size: 2.2KB
- Average HTTP Provisioning Request Packet Size: NA
- Average HTTP Provisioning Response Packet Size: NA
Figure 3-1 SOAP and Diameter Deployment Model

The following table describes the benchmarking parameters and their values:
Table 3-15 Traffic Model Details
Request Type | Details | TPS |
---|---|---|
Diameter SH Traffic | SH Traffic | 25K |
Provisioning (2K using Provgw) | SOAP Traffic | 2K |
Table 3-16 SOAP Traffic Model
Request Type | SOAP Traffic % |
---|---|
GET | 33% |
DELETE | 11% |
POST | 11% |
PUT | 45% |
Table 3-17 Diameter Traffic Model
Request Type | Diameter Traffic % |
---|---|
SNR | 25% |
PUR | 50% |
UDR | 25% |
The following table describes the benchmarking parameters and their values:
Table 3-18 Testcase Parameters
Input Parameter Details | Configuration Values |
---|---|
UDR Version Tag | 22.2.0 |
Target TPS | 25K + 2K |
Traffic Profile | 25K sh + 2K SOAP |
Notification Rate | OFF |
UDR Response Timeout | 5s |
Client timeout | 10s |
Signaling Requests Latency Recorded on Client | NA |
Provisioning Requests Latency Recorded on Client | NA |
Note:
PNR scenarios are not tested because server stub is not used.Table 3-19 cnDBTier Resources
Micro service name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Total Resources |
---|---|---|---|---|---|
Management node | mysqlndbcluster | 3 | 4 CPUs | 10 GB |
12 CPUs 30 GB Memory |
Data node | mysqlndbcluster | 4 | 15 CPUs | 98 GB |
64 CPU 408 GB Memory |
db-backup-executor-svc | 100m CPU | 128 MB | |||
APP SQL node | mysqlndbcluster | 4 | 16 CPUs | 16 GB |
64 CPUs 64 GB Memory |
SQL node (Used for Replication) | mysqlndbcluster | 4 | 8 CPUs | 16 GB |
49 CPUs 81 GB Memory |
DB Monitor Service | db-monitor-svc | 1 | 200m CPUs | 500 MB |
3 CPUs 2 GB Memory |
DB Backup Manager Service | replication-svc | 1 | 200m CPU | 500 MB |
3 CPUs 2 GB Memory |
- Data memory usage: 72GB (5.164GB used)
- DB Reads per second: 52k
- DB Writes per second: 24k
Table 3-20 UDR Resources (Request Latency: 40ms)
Micro service name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Total Resources |
---|---|---|---|---|---|
nudr-diameterproxy | nudr-diameterproxy | 19 | 2.5 CPUs | 4 GB |
47.5 CPUs 76 GB Memory |
nudr-diam-gateway | nudr-diam-gateway | 3 | 6 CPUs | 4 GB |
18 CPUs 12 GB Memory |
Ingress-gateway-sig | ingressgateway-sig | 2 | 2 CPUs | 2 GB |
4 CPUs 4 GB Memory |
Ingress-gateway-prov | ingressgateway-prov | 2 | 2 CPUs | 2 GB |
4 CPUs 4 GB Memory |
Nudr-dr-service | nudr-drservice | 2 | 2 CPUs | 2 GB |
4 CPUs 4 GB Memory |
Nudr-dr-provservice | nudr-dr-provservice | 2 | 2 CPUs | 2 GB |
4 CPUs 4 GB Memory |
Nudr-nrf-client-nfmanagement | nrf-client-nfmanagement | 2 | 1 CPUs | 1 GB |
2 CPUs 2 GB Memory |
Nudr-egress-gateway | egressgateway | 2 | 2 CPUs | 2 GB |
4 CPU 4 GB Memory |
Nudr-config | nudr-config | 2 | 1 CPUs | 1 GB |
2 CPU 2 GB Memory |
Nudr-config-server | nudr-config-server | 2 | 1 CPUs | 1 GB |
2 CPU 2 GB Memory |
alternate-route | alternate-route | 2 | 1 CPUs | 1 GB |
2 CPU 2 GB Memory |
app-info | app-info | 2 | 1 CPUs | 1 GB |
2 CPU 2 GB Memory |
perf-info | perf-info | 2 | 1 CPUs | 1 GB |
2 CPU 2 GB Memory |
The following table describes provisioning gateway resources:
Table 3-21 Provisioning Gateway Resources (Provisioning Request Latency: 40ms)
Micro service name | Container name | Number of Pods | CPU Allocation Per Pod | Memory Allocation Per Pod | Total Resources |
---|---|---|---|---|---|
provgw-ingress-gatewa | ingressgateway | 3 | 2 CPUs | 2 GB |
6 CPUs 6 GB Memory |
provgw-egress-gateway | egressgateway | 2 | 2 CPUs | 2 GB |
4 CPUs 4 GB Memory |
provgw-service | provgw-service | 4 | 2.5 CPUs | 3 GB |
10 CPUs 12 GB Memory |
provgw-config | provgw-config | 2 | 1 CPUs | 1 GB |
2 CPUs 2 GB Memory |
provgw-config-server | provgw-config-server | 2 | 1 CPUs | 1 GB |
2 CPUs 2 GB Memory |
Table 3-22 cnUDR and ProvGw Resources Calculation
Resources | cnUDR | ProvGw | ||||
---|---|---|---|---|---|---|
Core services used for traffic runs (Nudr-diamgw, Nudr-diamproxy, Nudr-ingressgateway-prov and Nudr-dr-prov) at 70% usage | Other Microservices | Total | Core services used for traffic runs (ProvGw-ingressgateway, ProvGw-provgw service and ProvGw-egressgateway) at 70% usage | Other Microservice | Total | |
CPU | 73.5 | 24 | 97.5 | 20 | 4 | 24 |
Memory in GB | 96 | 24 | 120 | 22 | 4 | 26 |
Disk Volume (Ephemeral storage) in GB | 26 | 16 | 42 | 9 | 4 | 13 |
Table 3-23 cnDBTier Resources Calculation
Resources | cnDbTier | |||||
---|---|---|---|---|---|---|
SQL nodes (at actual usage) | SQL Nodes (Overhead/ Buffer resources at 20%) | Data nodes (at actual usage) | Data nodes (Overhead/ Buffer resources at 10%) | MGM nodes and other resources (Default resources) | Total | |
CPU | 76 | 16 | 23.2 | 5 | 18 | 138.5 |
Memory in GB | 70.4 | 14 | 368 | 36 | 34 | 522 |
Disk Volume (Ephemeral storage) in GB | 8 | NA | 960 (ndbdisksize= 240*4) | NA | 20 | 988 |
Table 3-24 Total Resources Calculation
Resources | Total |
---|---|
CPU | 260 |
Memory in GB | 668 GB |
Disk Volume (Ephemeral storage) in GB | 104 GB |
The following table provides observation data for the performance test that can be used for the benchmark testing to scale up UDR performance:
Table 3-25 Result and Observation
Parameter | Values |
---|---|
TPS Achieved | 10K |
Success Rate | 100% |
Average UDR processing time (Request and Response) | 40ms |
3.4 Test Scenario 4: 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
- 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-26 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-27 Testcase Parameters
Input Parameter Details | Configuration Values |
---|---|
UDR Version Tag | 25.1.200 |
Target TPS | 25K TPS Signaling |
Notification Rate | 300 |
UDR Response Timeout | 2.7s |
Signaling Requests Latency Recorded on Client | 25ms |
Provisioning Requests Latency Recorded on Client | 25ms |
Table 3-28 Consolidated Resource Requirement
Resource | CPU | Memory | Ephemeral Storage | PVC |
---|---|---|---|---|
cnDBTier | 163 CPUs | 640 GB | 29 GB | 1875 GB |
UDR | 247CPUs | 184 GB | 55 GB | NA |
PROVGW | 28 | 28 | 10 | NA |
Buffer | 50 CPUs | 50 GB | 20 GB | 200 GB |
Total | 488 CPUs | 902 GB | 114 GB | 2075 GB |
Table 3-29 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 | 143 GB |
2 CPUs 2 GB Ephemeral Storage: 1 GB PVC Allocation: 143 GB |
Table 3-30 UDR Resources (Average Latency: 50ms (N36/PROV) and N36: 25ms / PROV: 75ms
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-31 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: 2 GB |
provgw-config | provgw-config | 2 | 2 CPUs | 2 GB |
4 CPUs 4 GB Memory Ephemeral Storage: 2 GB |
Table 3-32 Result and Observation
Parameter | Values |
---|---|
TPS Achieved | 25K Signaling + 600K Provisioning |
UDR Processing Average Latency | 50ms |
Success rate | 100% |
3.5 Test Scenario 5: 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
- 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-33 Traffic Model Details
Request Type | Details | TPS |
---|---|---|
N36 17.2K TPS | subs-to-notify POST | 3.6K (20%) |
sm-data GET | 3.6K (20%) | |
subs-to-notify DELETE | 3.6K (20%) | |
sm-data PATCH | 6.4K (40%) | |
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-34 Testcase Parameters
Input Parameter Details | Configuration Values |
---|---|
UDR Version Tag | 25.1.200 |
Target TPS | 17.2K N36 + 10K SH |
Notification Rate | 1.2K |
UDR Response Timeout | 2.7s |
Signaling Requests Latency Recorded on Client | 36ms |
Provisioning Requests Latency Recorded on Client | 36ms |
Diameter (SH) Requests Latency Recorded on Client | 40ms |
Table 3-35 Consolidated Resource Requirement
Resource | CPU | Memory | Ephemeral Storage | PVC |
---|---|---|---|---|
cnDBTier | 139 CPUs | 625 GB | 25 GB | 1823 |
UDR | 281 CPUs | 201 GB | 59 GB | NA |
PROVGW | 28 | 28 | 10 | NA |
Buffer | 50 CPUs | 50 GB | 20 GB | 200 GB |
Total | 498 CPUs | 901 GB | 114 GB | 2023 GB |
Table 3-36 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: 20 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 | 143 GB |
2 CPUs 2 GB Ephemeral Storage: 1 GB PVC Allocation: 143 GB |
Table 3-37 UDR Resources (Average Latency: 47ms [30ms (N36) / 30ms (SH) / 80ms 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-38 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: 2 GB |
provgw-config | provgw-config | 2 | 2 CPUs | 2 GB |
4 CPUs 4 GB Memory Ephemeral Storage: 2 GB |
Table 3-39 Result and Observation
Parameter | Values |
---|---|
TPS Achieved | 17.2K N36 + 10K SH + 600K Provisioning |
UDR Processing Average Latency | 47ms |
Success rate | 100% |