Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

Table of Contents

...

This detailed workload setup provides a comprehensive overview of the Kafka consumer environment on Linux, detailing how cloud events are handled, system resource configurations, and message publishing mechanisms.

Test Flow Description

According to requirements the test flow included following

...

steps:

  • Use docker compose (C:\CPS\master\cps\docker-compose\docker-compose.yml) to make all the required containers running
    docker-compose --profile dmi-stub --profile monitoring up -d 
  • Stop "cps-and-ncmp" container.
  • Use K6 script (k6-tests\once-off-test\kafka\produce-avc-event.js) to publish

...

  • cm avc cloud events to  topic "dmi-cm-events"
  • Verify number of messages published to topic "dmi-cm-events"  using kafka UI "http://localhost:8089/"  
  • Start "cps-and-ncmp" container again
  • Verify number of messages consumed by topic "cm-events"  using kafka UI "http://localhost:8089/"  
  • Login  grafana http://localhost:3000/ to capture CPU, Memory and Threads.

Load:

  • The flow was repeated in a loop multiple times (defined with circles parameter);

...

  • Code Block
    languagepy
    titleK6 Scenarios
    collapsetrue
     produce_cm_avc_event: {
                executor: 'shared-iterations',
                exec: 'produce_cm_avc_event',
                vus: 1000, // You can adjust VUs to meet performance requirements
                iterations: $TOTAL_MESSAGES, // Total messages to publish  (for example: 100 K , 200 K)
                maxDuration: '15m', // Adjust depending on the expected completion time
            }


Test Environment


#

Environment/Workload

Description

1Tested on Linux

Laptop :                Dell Inc. XPS 15 9530
Processor :           13th Gen Intel® Core™ i9-13900H × 20           
Installed RAM :    32.0 GiB 
Edition :               Fedora Linux 40 (Workstation Edition)u

PassMark Bench Mark: 28820

2Tested on Windows

Laptop :                Lenovo ThinkPad
Processor :            11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz   2.42 GHz
Installed RAM  :    40.0 GB (39.7 GB usable)
Edition :                Windows 11 Pro

PassMark Bench Mark: 9761

2Number of CPS Instance

1


NCMP resource configYAML Configuration: Defines deployment resources for the NCMP service:
Replicas: 1
CPU Reservations: 2 CPUs
Memory Reservations: 2 GB
CPU Limits: 3 CPUs
Memory Limits: 3 GB

Kafka Topic configurationCM Notification Topic Configuration:
Enabled: false
Group ID: cm_events
Topic Name: dmi-cm-events

Publishing topic name
dmi-cm-events

Forwarded topic name
cm-events
4Total number of Cm Avc cloud events

100,000 Kafka messages sent through the Kafka topic.

5

Cloud event headers

The headers for each Kafka message contain the following fields:
ce_type: "org.onap.cps.ncmp.events.avc1_0_0.AvcEvent"
ce_source: "DMI"
ce_destination: "dmi-cm-events"
ce_specversion: "1.0"
ce_time: ISO-formatted timestamp
ce_id: A unique ID generated using crypto.randomUUID()
ce_dataschema: "urn:cps.onap.cps.ncmp.events.avc1_0_0.AvcEvent:1.0.0"
ce_correlationid: Correlation ID generated using crypto.randomUUID()
6Kafka payload 


Code Block
languagejs
titleSampleAvcInputEvent.json
collapsetrue
{
  "data": {
    "push-change-update": {
      "datastore-changes": {
        "ietf-yang-patch:yang-patch": {
          "patch-id": "34534ffd98",
          "edit": [
            {
              "edit-id": "ded43434-1",
              "operation": "replace",
              "target": "ran-network:ran-network/NearRTRIC[@id='22']/GNBCUCPFunction[@id='cucpserver2']/NRCellCU[@id='15549']/NRCellRelation[@id='14427']",
              "value": {
                "attributes": []
              }
            },
            {
              "edit-id": "ded43434-2",
              "operation": "create",
              "target": "ran-network:ran-network/NearRTRIC[@id='22']/GNBCUCPFunction[@id='cucpserver1']/NRCellCU[@id='15548']/NRCellRelation[@id='14426']",
              "value": {
                "attributes": [
                  {
                    "isHoAllowed": false
                  }
                ]
              }
            },
            {
              "edit-id": "ded43434-3",
              "operation": "delete",
              "target": "ran-network:ran-network/NearRTRIC[@id='22']/GNBCUCPFunction[@id='cucpserver1']/NRCellCU[@id='15548']/NRCellRelation[@id='14426']"
            }
          ]
        }
      }
    }
  }
}


8Number of DMI Plugin stub1 DMI Plugin Stub is used for testing purposes.
9Commit ID 81eb7dfc2f100a72692d2cbd7ce16540ee0a0fd4  
10Commit ID linkCommit Link
11K6 script (to publish cloud events)

The test script used to publish cloud events is located at:

..\cps\k6-tests\once-off-test\kafka\produce-avc-event.js

...

Performance Comparison Between Linux and Windows Kafka Consumers:


Test Environment

Linux

Windows

Linux

Windows

Total number of kafka messages

100,000


200,000

CPU (%)

11344.98 

26882.01  

Memory  (MB)

522 

497

78.3

Network data sent (MB)

5972.6

120

Network data received Memory  (MB)

113

168244 

195

212

222

Total number of threads

360-361

358-362321

320

320

319

1st kaka message forwarded (HH:MM:SS)

1316:4937:2511

14:56:3317:30:51

16.52.54

17.42.56

Last kaka message forwarded (HH:MM:SS)

1316:4937:2814

1417:56:3931:03

16.52.59

17.43.10

Time taken to consume and forward kafka messages (Seconds)

3

12

5

14

Consumption rate (Messages / second)

33,33316

,6678,333

40,000

14,286

Kafka Consumer Performance on Linux:

...