mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jiang Yan Xu <...@jxu.me>
Subject Review Request 55874: Added a simple AllocatorBacklog benchmark.
Date Tue, 24 Jan 2017 21:46:37 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/55874/
-----------------------------------------------------------

Review request for mesos, Benjamin Mahler, Jacob Janco, and Zhitao Li.


Bugs: MESOS-6904
    https://issues.apache.org/jira/browse/MESOS-6904


Repository: mesos


Description
-------

To evaluate MESOS-6904.


Diffs
-----

  src/tests/hierarchical_allocator_tests.cpp 1edd0ecc8a93cd41532e1cf3641f67c780ab23a5 

Diff: https://reviews.apache.org/r/55874/diff/


Testing
-------

## Interpretation the benchmark output

- With the allocation batching it's faster to process all the `reviveOffers` events after
all resources in the cluster have already been allocated. These allocation runs then don't
generate allocations and so their execution should be identical and the allocation batching
reduces the number of them. 
- With the allocation batching it takes about the same time to process the same number of
`addSlave` events, no matter if allocations are batched or not. This is because individual
`addSlave` calls trigger only allocation for that agent while batched allocation allocates
all of the accumulated candidates so far, so the total cost should be the similar.
- It's also faster to process `addFrameworks` with allocation batching but in this benchmark
frameworks are added when no agents are connected, so the allocation runs should exit very
quickly.

## Output

With the patch set:

```
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/0
Using 1000 agents and 1 frameworks
Added 1 frameworks in 1.638795ms with 1 allocation runs
Added 1000 agents in 799.084178ms with 4 allocation runs
Processed 1 `reviveOffers` calls in 10.030412ms with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/0
(909 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/1
Using 1000 agents and 50 frameworks
Added 50 frameworks in 5.496104ms with 2 allocation runs
Added 1000 agents in 1.210938725secs with 3 allocation runs
Processed 50 `reviveOffers` calls in 129.410729ms with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/1
(1420 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/2
Using 1000 agents and 100 frameworks
Added 100 frameworks in 9.31721ms with 2 allocation runs
Added 1000 agents in 1.064227156secs with 3 allocation runs
Processed 100 `reviveOffers` calls in 229.829276ms with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/2
(1410 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/3
Using 1000 agents and 200 frameworks
Added 200 frameworks in 19.380803ms with 3 allocation runs
Added 1000 agents in 1.472364101secs with 2 allocation runs
Processed 200 `reviveOffers` calls in 419.054445ms with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/3
(2007 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/4
Using 1000 agents and 500 frameworks
Added 500 frameworks in 39.074317ms with 2 allocation runs
Added 1000 agents in 2.561990683secs with 2 allocation runs
Processed 500 `reviveOffers` calls in 754.971627ms with 2 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/4
(3440 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/5
Using 1000 agents and 1000 frameworks
Added 1000 frameworks in 73.831892ms with 2 allocation runs
Added 1000 agents in 4.395376381secs with 2 allocation runs
Processed 1000 `reviveOffers` calls in 1.660467486secs with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/5
(6218 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/6
Using 1000 agents and 3000 frameworks
Added 3000 frameworks in 139.383796ms with 3 allocation runs   
Added 1000 agents in 10.951388325secs with 2 allocation runs   
Processed 3000 `reviveOffers` calls in 4.557919408secs with 2 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/6
(15748 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/7
Using 1000 agents and 6000 frameworks
Added 6000 frameworks in 316.791333ms with 3 allocation runs   
Added 1000 agents in 21.610491338secs with 2 allocation runs   
Processed 6000 `reviveOffers` calls in 8.869317036secs with 2 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/7
(30921 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/8
Using 5000 agents and 1 frameworks
Added 1 frameworks in 666231ns with 1 allocation runs
Added 5000 agents in 4.598545159secs with 4 allocation runs
Processed 1 `reviveOffers` calls in 47.113709ms with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/8
(5003 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/9
Using 5000 agents and 50 frameworks
Added 50 frameworks in 5.183658ms with 2 allocation runs
Added 5000 agents in 8.579621688secs with 3 allocation runs
Processed 50 `reviveOffers` calls in 661.889668ms with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/9
(9588 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/10
Using 5000 agents and 100 frameworks
Added 100 frameworks in 8.75169ms with 2 allocation runs
Added 5000 agents in 10.135994191secs with 3 allocation runs   
Processed 100 `reviveOffers` calls in 958.393865ms with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/10
(11439 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/11
Using 5000 agents and 200 frameworks
Added 200 frameworks in 18.671253ms with 3 allocation runs
Added 5000 agents in 11.071903594secs with 3 allocation runs   
Processed 200 `reviveOffers` calls in 1.712832633secs with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/11
(13111 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/12
Using 5000 agents and 500 frameworks
Added 500 frameworks in 39.538389ms with 3 allocation runs
Added 5000 agents in 16.969996362secs with 3 allocation runs   
Processed 500 `reviveOffers` calls in 3.822943337secs with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/12
(21204 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/13
Using 5000 agents and 1000 frameworks
Added 1000 frameworks in 76.366173ms with 4 allocation runs
Added 5000 agents in 29.192506073secs with 3 allocation runs   
Processed 1000 `reviveOffers` calls in 8.41620529secs with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/13
(37994 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/14
Using 5000 agents and 3000 frameworks
Added 3000 frameworks in 213.188218ms with 3 allocation runs   
Added 5000 agents in 1.14503399673333mins with 2 allocation runs
Processed 3000 `reviveOffers` calls in 22.84809316secs with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/14
(92087 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/15
Using 5000 agents and 6000 frameworks
Added 6000 frameworks in 277.973128ms with 5 allocation runs   
Added 5000 agents in 2.03803562768333mins with 3 allocation runs
Processed 6000 `reviveOffers` calls in 45.922090085secs with 2 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/15
(168869 ms)
...
```

Without the patch set:
```
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/0
Using 1000 agents and 1 frameworks
Added 1 frameworks in 1.851101ms with 1 allocation runs
Added 1000 agents in 658.956396ms with 1000 allocation runs
Processed 1 `reviveOffers` calls in 8.261096ms with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/0
(760 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/1
Using 1000 agents and 50 frameworks
Added 50 frameworks in 8.397789ms with 50 allocation runs
Added 1000 agents in 854.988219ms with 1000 allocation runs
Processed 50 `reviveOffers` calls in 233.817863ms with 50 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/1
(1189 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/2
Using 1000 agents and 100 frameworks
Added 100 frameworks in 14.322559ms with 100 allocation runs   
Added 1000 agents in 1.056275232secs with 1000 allocation runs 
Processed 100 `reviveOffers` calls in 431.223604ms with 100 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/2
(1587 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/3
Using 1000 agents and 200 frameworks
Added 200 frameworks in 32.182689ms with 200 allocation runs   
Added 1000 agents in 1.433496448secs with 1000 allocation runs 
Processed 200 `reviveOffers` calls in 833.051338ms with 200 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/3
(2359 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/4
Using 1000 agents and 500 frameworks
Added 500 frameworks in 72.557537ms with 500 allocation runs   
Added 1000 agents in 2.762114651secs with 1000 allocation runs 
Processed 500 `reviveOffers` calls in 2.050692828secs with 500 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/4
(4968 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/5
Using 1000 agents and 1000 frameworks
Added 1000 frameworks in 119.020379ms with 1000 allocation runs
Added 1000 agents in 4.329463959secs with 1000 allocation runs 
Processed 1000 `reviveOffers` calls in 3.315772475secs with 1000 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/5
(7857 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/6
Using 1000 agents and 3000 frameworks
Added 3000 frameworks in 307.91983ms with 3000 allocation runs 
Added 1000 agents in 11.01207796secs with 1000 allocation runs 
Processed 3000 `reviveOffers` calls in 9.572909873secs with 3000 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/6
(20991 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/7
Using 1000 agents and 6000 frameworks
Added 6000 frameworks in 570.986147ms with 6000 allocation runs
Added 1000 agents in 21.43404308secs with 1000 allocation runs 
Processed 6000 `reviveOffers` calls in 19.351272234secs with 6000 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/7
(41472 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/8
Using 5000 agents and 1 frameworks
Added 1 frameworks in 474133ns with 1 allocation runs
Added 5000 agents in 2.520829265secs with 5000 allocation runs 
Processed 1 `reviveOffers` calls in 24.411648ms with 1 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/8
(2851 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/9
Using 5000 agents and 50 frameworks
Added 50 frameworks in 6.965268ms with 50 allocation runs
Added 5000 agents in 3.646906559secs with 5000 allocation runs 
Processed 50 `reviveOffers` calls in 1.000947584secs with 50 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/9
(4948 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/10
Using 5000 agents and 100 frameworks
Added 100 frameworks in 29.503655ms with 100 allocation runs   
Added 5000 agents in 4.718859304secs with 5000 allocation runs 
Processed 100 `reviveOffers` calls in 2.034795179secs with 100 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/10
(7132 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/11
Using 5000 agents and 200 frameworks
Added 200 frameworks in 31.761516ms with 200 allocation runs   
Added 5000 agents in 6.71781219secs with 5000 allocation runs  
Processed 200 `reviveOffers` calls in 3.682332737secs with 200 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/11
(10742 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/12
Using 5000 agents and 500 frameworks
Added 500 frameworks in 71.563168ms with 500 allocation runs   
Added 5000 agents in 13.130200606secs with 5000 allocation runs
Processed 500 `reviveOffers` calls in 8.430420361secs with 500 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/12
(22008 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/13
Using 5000 agents and 1000 frameworks
Added 1000 frameworks in 122.306748ms with 1000 allocation runs
Added 5000 agents in 32.502122389secs with 5000 allocation runs
Processed 1000 `reviveOffers` calls in 16.547209905secs with 1000 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/13
(49485 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/14
Using 5000 agents and 3000 frameworks
Added 3000 frameworks in 301.394386ms with 3000 allocation runs
Added 5000 agents in 1.08586860435mins with 5000 allocation runs
Processed 3000 `reviveOffers` calls in 49.605255631secs with 3000 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/14
(115408 ms)
[ RUN      ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/15
Using 5000 agents and 6000 frameworks
Added 6000 frameworks in 563.918755ms with 6000 allocation runs
Added 5000 agents in 2.12307636961667mins with 5000 allocation runs
Processed 6000 `reviveOffers` calls in 1.68996078711667mins with 6000 allocation runs
[       OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.AllocatorBacklog/15
(229736 ms)
...
```


Thanks,

Jiang Yan Xu


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message