Performance tests
The current performance test of ACM-R is made by jmeter. The jmeter file is configured with a cycle where a composition in created and primed, and an instance is deployed, undeployed and deleted. The test is made again a Kubernetes environment defined in policy/docker.
We need to investigate the performance of ACM-R whit hundreds of compositions and instances deployed at same time and determine minimal/recommended requirements of memory and CPU.
Test using 100 compositions and instances
Test made with 5 user and 20 instances for each user. Components version: 7.1.1
mariadb
replica: 1
policy-clamp-runtime-acm/policy-clamp-ac-pf-ppnt/policy-clamp-ac-http-ppnt/policy-clamp-ac-k8s-ppnt
Limits:
cpu: 1
memory: 4Gi
Requests:
cpu: 100m
memory: 1Gi
system_cpu_usage (15m)
Note: runtime has reached the max limit CPU. Http participant has used less then 500m.
jvm_memory_used_bytes (15m)
Note: runtime and participants have not used so much memory.
http_server_requests_seconds_max (15m)
spring_data_repository_invocations_seconds_max (15m)
Test using 500 compositions and instances
Test made with 5 user and 100 instances for each user. Components version: 7.1.1
mariadb
replica: 1
policy-clamp-runtime-acm/policy-clamp-ac-pf-ppnt/policy-clamp-ac-http-ppnt/policy-clamp-ac-k8s-ppnt
Limits:
cpu: 1
memory: 4Gi
Requests:
cpu: 100m
memory: 1Gi
system_cpu_usage (2h)
jvm_memory_used_bytes (2h)
http_server_requests_seconds_max (2h)
Note: with 500 compositions, some endpoints like "/v2/compositions" needs paginations.
spring_data_repository_invocations_seconds_max (2h)
Test using 500 compositions and instances
Test made with 5 user and 100 instances for each user. Components version: 7.1.1
mariadb
replica: 1
policy-clamp-runtime-acm
Limits:
cpu: 2
memory: 4Gi
Requests:
cpu: 100m
memory: 1Gi
policy-clamp-ac-pf-ppnt/policy-clamp-ac-http-ppnt/policy-clamp-ac-k8s-ppnt
Limits:
cpu: 1
memory: 2Gi
Requests:
cpu: 100m
memory: 500Mi
system_cpu_usage (2h)
jvm_memory_used_bytes (2h)
http_server_requests_seconds_max (2h)
spring_data_repository_invocations_seconds_max (2h)
Test using 500 compositions and instances
Test made with 5 user and 100 instances for each user. Components version: 7.1.1
mariadb
replica: 2
policy-clamp-runtime-acm
Limits:
cpu: 2
memory: 4Gi
Requests:
cpu: 100m
memory: 1Gi
policy-clamp-ac-pf-ppnt/policy-clamp-ac-http-ppnt/policy-clamp-ac-k8s-ppnt
Limits:
cpu: 1
memory: 2Gi
Requests:
cpu: 100m
memory: 500Mi
system_cpu_usage (1h)
jvm_memory_used_bytes (1h)
microk8s kubectl top pod
NAME | CPU(cores) | MEMORY(bytes) |
---|---|---|
kafka-deployment-5c87d497b-xwg9q | 24m | 683Mi |
zookeeper-deployment-7ff87c7fcc-wpbhd | 3m | 132Mi |
mariadb-galera-0 | 9m | 184Mi |
mariadb-galera-1 | 23m | 214Mi |
policy-clamp-ac-http-ppnt-7cfb879b7b-rw48q | 5m | 270Mi |
policy-clamp-ac-k8s-ppnt-666fd747b8-gp26b | 5m | 230Mi |
policy-clamp-ac-pf-ppnt-86bb4566bf-zdwz6 | 5m | 235Mi |
policy-clamp-runtime-acm-6cb79cfc7c-nchwc | 33m | 813Mi |
prometheus-f66f97b6-grn72 | 4m | 30Mi |