Investigate mod-pubsub Multi-node behavior report IN PROGRESS
- PERF-152Getting issue details... STATUS
Overview
The purpose of this test set is to compare different runs of CheckIn-CheckOut workflow test with different set of mod-pubsub. As we find - to enable multi node on mod-pubsub is needed to change NUMBER_OF_PARTITIONS value to bigger one. In test set we comparing different numbers of nodes and partitions.
Summary
Test set shows that optimal configuration is 2 containers with 2 KAFKA NUMBER_OF_PARTITIONS. 3 containers with 2 nodes shows higher response times than even one container with one partition. (same for 3 nodes with 3 partitions).
Partitioning logic depends on event types. It means that with "one call test" in any case we'll use only one partition of mod-pubsub. As for CheckIn-CheckOut test we might use one partition more than other (or other two) that can explain differences in CPU usages on different nodes. So bigger partition number can help with complex workflows or with real users.
Version
mod-pubsub:1.3.3
Tests
Test# | Virtual Users | Duration | mod-pubsub setup |
---|---|---|---|
1 | 20 | 2 hours | 2 container 1 partition |
2 | 20 | 2 hours | 2 containers 2 partitions |
3 | 20 | 2 hours | 2 container 3 partitions |
4 | 20 | 2 hours | 3 containers 3 partitions |
Results comparison
For comparison purposes we'll use formula to summarize Check-In controller and Check-Out controller, instead of using all calls list.
1 vs 2 | 2 vs 3 | 3 vs 1 | 4 vs 3 | |||||||||
50th pct | 75th pct | 75 % difference | 50th pct | 75th pct | 75 % difference | 50th pct | 75th pct | 75 % difference | 50th pct | 75th pct | 75 % difference | |
Total Check-in | -0,449 | -0,69 | -99% | -0,222 | -0,172 | -33% | -0,671 | -0,862 | -137% | 2,416 | 3,018 | 341% |
Total Check-out | 3,188 | 4,112 | 120% | 1,763 | 2,079 | 40% | 4,951 | 6,191 | 169% | -7,451 | -9,506 | -475% |
CPU comparison during tests
Test 1: 2 containers, 1 partition
Node 1:
Node 2:
Test 2: 2 containers, 2 partitions
node 1:
node 2:
Test 3: 2 containers, 3 partitions
node 1:
node 2:
Test 4: 3 containers, 3 partitions
node 1
node 2
node 3