Versions Compared

Key

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

...

In order to conduct client tests this will be conducted in following architecture:

Image RemovedImage Added

  • HV-VES Client - produces high amount of events for processing.
  • Processing Consumer - consumes events from Kafka topics and creates performance metrics.
  • Offset Consumer - reads Kafka offsets.
  • Prometheus - sends requests for performance metrics to HV-VES, Processing Consumer and Offset Consumer, provides data to Grafana.
  • Grafana - delivers analytics and its visualization.

Link between HV-VES Client and HV-VES is TLS secured (provided scripts generate and place certificates on proper containers).

Info

Note: In the Without DMaaP Kafka tests the DMaaP/Kafka service was substituted with wurstmeister kafka

...

Preconditions

  • Installed ONAP (Frankfurt)
  • Plain TCP connection between HV-VES and clients (default configuration)
  • Metric port exposed on HV-VES service

...

Before start tests, download docker image of producer which is available here. available here:

View file
namehv-collector-go-client.tar.gz
height250

To extract image locally use command: 

Code Block
docker load < hv-collector-go-client.tar.gz  

To execute performance tests we have to run functions from a shell script cloud-based-performance-test.sh in HV-VES project directory: ~/Modify tools/performance/cloud/

First we have to generate certificates in ~/tools/ssl folder by using gen_certs. This step only needs to be performed during the first test setup (or if the generated files have been deleted).

producer-pod.yaml file to use the above image and set imagePullPolicy to IfNotPresent:

Code Block
languageyml
...
spec:
  containers:
    - name: hv-collector-producer
      image: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-go-client:latest
      imagePullPolicy: IfNotPresent
      volumeMounts:
...


...

titleGenerating certificates

...

To execute performance tests we have to run functions from a shell script 

cloud-based-performance-test.sh

...

 

...

in HV-VES project directory: ~/tools/performance/cloud/

  1. First we have to generate certificates in ~/tools/ssl folder by using gen_certs. This step only needs to be performed during the first test setup (or if the generated files have been deleted).

    Code Block
    titleGenerating certificates
    ./cloud-based-performance-test.sh gen_certs


  2. Then we call setup in order to send certificates to HV-VES, and deploy Consumers, order to send certificates to HV-VES, and deploy Consumers, Prometheus, Grafana and create their ConfigMaps.

    Code Block
    titleSetting up the test environment
    ./cloud-based-performance-test.sh setup


  3. After that we have to change HV-VES configuration in Consul KEY/VALUE tab (typically we can access Consul at port 30270 of any Controller node, i.e. http://slave1:30270/ui/#/dc1/kv/dcae-hv-ves-collector/edit).

    Code Block
    titleHV-VES Consul configuration
    {"security.sslDisable": false,
    "logLevel": "INFO",
    "server.listenPort": 6061,
    "server.idleTimeoutSec": 300,
    "cbs.requestIntervalSec": 5,
    "streams_publishes": {
    	"perf3gpp": {
    		"type": "kafka",
    		"aaf_credentials": {
    			"username": "admin",
    			"password": "admin_secret"
    			},
    		"kafka_info": {
    			"bootstrap_servers": "message-router-kafka:9092",
    			"topic_name": "HV_VES_PERF3GPP"
    			}
    		}
    	},
    "security.keys.trustStoreFile": "/etc/ves-hv/ssl/custom/trust.p12",
    "security.keys.keyStoreFile": "/etc/ves-hv/ssl/custom/server.p12",
    "security.keys.trustStorePasswordFile":"/etc/ves-hv/ssl/custom/trust.pass",
    "security.keys.keyStorePasswordFile": "/etc/ves-hv/ssl/custom/server.pass"}

    After completing previous steps we can call the start function, which provides Producers and starts the test.

    Code Block
    titlePerforming the test
    ./cloud-based-performance-test.sh start

    For the start function we can use optional arguments:

    --loadshould the test keep defined number of running producers until script interruption (false)--containersnumber of producer containers to create (1)--properties-filepath to file with benchmark properties (./test.properties)--retention-time-minutesretention time of messages in kafka in minutes (60)

    Example invocations of test start:

    Code Block
    titleStarting performance test with single producers creation
    ./cloud-based-performance-test.sh start --containers 10

    The command above starts the test that creates 10 producers which send the amount of messages defined in test.properties once.

    Code Block
    titleStarting performance test with constant messages load
    ./cloud-based-performance-test.sh start --load true --containers 10 --retention-time-minutes 30

    This invocation starts load test, meaning the script will try to keep the amount of running containers at 10 with kafka message retention of 30 minutes.

    The test.properties file contains Producers and Consumers configurations and it allows setting following properties:

    ProducerhvVesAddressHV-VES address (dcae-hv-ves-collector.onap:6061)client.countNumber of clients per pod (1)message.sizeSize of a single message in bytes (16384)message.countAmount of messages to be send by each client (1000)message.intervalInterval between messages in miliseconds (1)Certificates pathsclient.cert.pathPath to cert file (/ssl/client.p12)client.cert.pass.pathPath to cert's pass file (/ssl/client.pass)Consumerkafka.bootstrapServersAdress of Kafka service to consume from (message-router-kafka:9092)kafka.topicsKafka topics to subscribe to (HV_VES_PERF3GPP)Results can be accessed under following links:
  4. Prometheus: http://slave1:30000/graph?g0.range_input=1h&g0.expr=hv_kafka_consumer_travel_time_seconds_count&g0.tab=1
  5. Grafana: http://slave1:30001/d/V94Kjlwmz/hv-ves-processing?orgId=1&refresh=5s

    To remove created ConfigMaps, Consumers, Producers, Grafana and Prometheus from Kubernetes cluster we call clean function. Note: clean doesn't remove certificates from HV-VES.

    Code Block
    titleCleaning the environment
    ./cloud-based-performance-test.sh clean

In order to restart the test environment (perform steps in following order: 5, 2 and then 3), which means redeploying hv-ves pod, resetting kafka topic and performing setup, we use reboot-test-environment.sh.

...

titleRestarting the test environment
  1. completing previous steps we can call the start function, which provides Producers and starts the test.

    Code Block
    titlePerforming the test
    ./cloud-based-performance-test.sh start

    For the start function we can use optional arguments:

    --loadshould the test keep defined number of running producers until script interruption (false)
    --containersnumber of producer containers to create (1)
    --properties-filepath to file with benchmark properties (./test.properties)
    --retention-time-minutesretention time of messages in kafka in minutes (60)

    Example invocations of test start:

    Code Block
    titleStarting performance test with single producers creation
    ./cloud-based-performance-test.sh start --containers 10

    The command above starts the test that creates 10 producers which send the amount of messages defined in test.properties once.

    Code Block
    titleStarting performance test with constant messages load
    ./cloud-based-performance-test.sh start --load true --containers 10 --retention-time-minutes 30

    This invocation starts load test, meaning the script will try to keep the amount of running containers at 10 with kafka message retention of 30 minutes.


    The test.properties file contains Producers and Consumers configurations and it allows setting following properties:

    Producer
    hvVesAddressHV-VES address (dcae-hv-ves-collector.onap:6061)
    client.countNumber of clients per pod (1)
    message.sizeSize of a single message in bytes (16384)
    message.countAmount of messages to be send by each client (1000)
    message.intervalInterval between messages in miliseconds (1)
    Certificates paths
    client.cert.pathPath to cert file (/ssl/client.p12)
    client.cert.pass.pathPath to cert's pass file (/ssl/client.pass)
    Consumer
    kafka.bootstrapServersAdress of Kafka service to consume from (message-router-kafka:9092)
    kafka.topicsKafka topics to subscribe to (HV_VES_PERF3GPP)

...


  1. Results can be accessed under following links:

HV-VES Performance test results

...

Raw results data with screenshots can be found in following files:

Test Results - series 1

Expand
titleClick here to see results...

Below tables show the test results across a wide range of containers' number. 

NUMBER OF PRODUCERSTOTAL MESSAGES PROCESSEDDIFFERENCE BETWEEN ALL MESSAGES AND SENT TO HV-VESAVERAGE PROCESSING TIME IN HV-VES WITHOUT ROUTING [ms]AVERAGE LATENCY TO HV-VES OUTPUT WITH ROUTING [ms]PEAK INCOMING DATA RATE [MB/s]PEAK PROCESSING MESSAGE QUEUE SIZEPEAK CPU LOAD [%]PEAK MEMORY USAGE [GB]RESULTS PRESENTED IN GRAFANA
218000000.03541.61752.90.38

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

218000000.0218.51.663.20.37

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

218000000.02214.81.6662.40.38

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

218000000.02319.41.6592.20.38

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

218000000.0217.61.6582.60.36

Image AddedImage Added

Image Added

Image RemovedImage Removed

Image Removed


NUMBER OF PRODUCERSTOTAL MESSAGES PROCESSEDDIFFERENCE BETWEEN ALL MESSAGES AND SENT TO HV-VESAVERAGE PROCESSING TIME IN HV-VES WITHOUT ROUTING [ms]AVERAGE LATENCY TO HV-VES OUTPUT WITH ROUTING [ms]PEAK INCOMING DATA RATE [MB/s]PEAK PROCESSING MESSAGE QUEUE SIZEPEAK CPU LOAD [%]PEAK MEMORY USAGE [GB]RESULTS PRESENTED IN GRAFANA
431586844824822603,2240030,4

Image RemovedImage Added

Image RemovedImage RemovedImage AddedImage Added
43591938073660104083,231004,90,78

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

4359401591135034863.730004,90,56

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

436000001.51303.312004.10.39

Image RemovedImage RemovedImage AddedImage Added

Image RemovedImage Added
436000000.02573.31803.50.38

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added


NUMBER OF PRODUCERSTOTAL MESSAGES PROCESSEDDIFFERENCE BETWEEN ALL MESSAGES AND SENT TO HV-VESAVERAGE PROCESSING TIME IN HV-VES WITHOUT ROUTING [ms]AVERAGE LATENCY TO HV-VES OUTPUT WITH ROUTING [ms]PEAK INCOMING DATA RATE [MB/s]PEAK PROCESSING MESSAGE QUEUE SIZEPEAK CPU LOAD [%]PEAK MEMORY USAGE [GB]RESULTS PRESENTED IN GRAFANA
635847515256600178754.949005.80.97

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

635849415067080201824.745004.50.97

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

63592447564900172314.919003.90.93

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

635894410566150172004.9480050.97

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added

635868913115410172024.9410050.96

Image RemovedImage RemovedImage RemovedImage AddedImage AddedImage Added


Test Results - series 2

Expand
titleClick here to see results...


NUMBER OF PRODUCERSTOTAL MESSAGES PROCESSEDDIFFERENCE BETWEEN ALL MESSAGES AND SENT TO HV-VESAVERAGE PROCESSING TIME IN HV-VES WITHOUT ROUTING [ms]AVERAGE LATENCY TO HV-VES OUTPUT WITH ROUTING [ms]PEAK INCOMING DATA RATE [MB/s]PEAK PROCESSING MESSAGE QUEUE SIZEPEAK CPU LOAD [%]PEAK MEMORY USAGE [GB]RESULTS PRESENTED IN GRAFANA
218000000.0268.91.61130.35

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

218000000.02611.31.6233.20.35Image Added

Image AddedImage AddedImage AddedImage AddedImage Added

Image Removed

Image RemovedImage RemovedImage RemovedImage RemovedImage Removed


NUMBER OF PRODUCERSTOTAL MESSAGES PROCESSEDDIFFERENCE BETWEEN ALL MESSAGES AND SENT TO HV-VESAVERAGE PROCESSING TIME IN HV-VES WITHOUT ROUTING [s]AVERAGE LATENCY TO HV-VES OUTPUT WITH ROUTING [ms]PEAK INCOMING DATA RATE [MB/s]PEAK PROCESSING MESSAGE QUEUE SIZEPEAK CPU LOAD [%]PEAK MEMORY USAGE [GB]RESULTS PRESENTED IN GRAFANA
436000000.02241.33.213040.35Image AddedImage AddedImage Added

Image AddedImage AddedImage Added

Image RemovedImage RemovedImage Removed

Image RemovedImage RemovedImage Removed

436000000.02340.73.23704.20.35

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added


NUMBER OF PRODUCERSTOTAL MESSAGES PROCESSEDDIFFERENCE BETWEEN ALL MESSAGES AND SENT TO HV-VESAVERAGE PROCESSING TIME IN HV-VES WITHOUT ROUTING [ms]AVERAGE LATENCY TO HV-VES OUTPUT WITH ROUTING [ms]PEAK INCOMING DATA RATE [MB/s]PEAK PROCESSING MESSAGE QUEUE SIZEPEAK CPU LOAD [%]PEAK MEMORY USAGE [GB]RESULTS PRESENTED IN GRAFANA
63593176836240159654.845004.31

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

63592177836490168344.842005.81

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added



No DMaaP Kafka SetUp

...

Raw results data with screenshots can be found in following files:

To see custom Kafka metrics you may want to change kafka-and-producers.json (located in HV-VES project directory: tools/performance/cloud/grafana/dashboards) to

...

Expand
titleClick here to see results...

Below tables show the test results across a wide range of containers' number. 

NUMBER OF PRODUCERSTOTAL MESSAGES PROCESSEDDIFFERENCE BETWEEN ALL MESSAGES AND SENT TO HV-VESAVERAGE PROCESSING TIME IN HV-VES WITHOUT ROUTING [ms]AVERAGE LATENCY TO HV-VES OUTPUT WITH ROUTING [ms]PEAK INCOMING DATA RATE [MB/s]PEAK PROCESSING MESSAGE QUEUE SIZEPEAK CPU LOAD [%]PEAK MEMORY USAGE [GB]RESULTS PRESENTED IN GRAFANA
218000000.0241.51.633.50.37

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

436000000.0201.73.235.70.37

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

654000000.022.64.8246.00.37
Image AddedImage Added

Image AddedImage AddedImage AddedImage Added

Image RemovedImage Removed

Image RemovedImage RemovedImage RemovedImage Removed

872000000.022.86.4148.50.37

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

1090000000.027.38.15528.50.38

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

121080000000.02789.710777.50.41

Image AddedImage AddedImage Added

Image AddedImage Added
Image Added

Image RemovedImage RemovedImage Removed

Image RemovedImage Removed
Image Removed
1412600000061401900013.0106309.80.99

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added


Test results - series 2

Expand
titleClick here to see results...

Below tables show the test results across a wide range of containers' number. 

NUMBER OF PRODUCERSTOTAL MESSAGES PROCESSEDDIFFERENCE BETWEEN ALL MESSAGES AND SENT TO HV-VESAVERAGE PROCESSING TIME IN HV-VES WITHOUT ROUTING [ms]AVERAGE LATENCY TO HV-VES OUTPUT WITH ROUTING [ms]PEAK INCOMING DATA RATE [MB/s]PEAK PROCESSING MESSAGE QUEUE SIZEPEAK CPU LOAD [%]PEAK MEMORY USAGE [GB]RESULTS PRESENTED IN GRAFANA
218000000.0251.71.633.40.37

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

436000000.0212.13.2144.90.37

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

654000000.022.54.8606.20.38

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

872000000.022.96.4247.40.37

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

1090000000.0185.58.02018.10.36

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added


121080000000.019141.79.717169.10.44

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added

1412600000031756816.057788.60.50

Image RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage AddedImage AddedImage Added