Hmm, this is an interesting topic. @anandmazumdar create a benchmark test case to compare v1 and v0 APIs before. You could run it via
``` ./bin/mesos-tests.sh --benchmark --gtest_filter="*SchedulerReconcileTasks_BENCHMARK_Test*" ``` Here is the result that run it in my machine. ``` [ RUN ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerLibrary/0 Reconciling 1000 tasks took 386.451108ms using the scheduler library [ OK ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerLibrary/0 (479 ms) [ RUN ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerLibrary/1 Reconciling 10000 tasks took 3.389258444secs using the scheduler library [ OK ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerLibrary/1 (3435 ms) [ RUN ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerLibrary/2 Reconciling 50000 tasks took 16.624603964secs using the scheduler library [ OK ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerLibrary/2 (16737 ms) [ RUN ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerLibrary/3 Reconciling 100000 tasks took 33.134018718secs using the scheduler library [ OK ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerLibrary/3 (33333 ms) [ RUN ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerDriver/0 Reconciling 1000 tasks took 24.212092ms using the scheduler driver [ OK ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerDriver/0 (89 ms) [ RUN ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerDriver/1 Reconciling 10000 tasks took 316.115078ms using the scheduler driver [ OK ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerDriver/1 (385 ms) [ RUN ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerDriver/2 Reconciling 50000 tasks took 1.239050154secs using the scheduler driver [ OK ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerDriver/2 (1379 ms) [ RUN ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerDriver/3 Reconciling 100000 tasks took 2.38445672secs using the scheduler driver [ OK ] Tasks/SchedulerReconcileTasks_BENCHMARK_Test.SchedulerDriver/3 (2711 ms) ``` *SchedulerLibrary* is the HTTP API, *SchedulerDriver* is the old way based on libmesos.so. On Sun, Oct 16, 2016 at 2:41 PM, Dario Rexin <[email protected]> wrote: > Hi all, > > I recently did some performance testing on the v1 scheduler API and found > that throughput is around 10x lower than for the v0 API. Using 1 > connection, I don’t get a lot more than 1,500 calls per second, where the > v0 API can do ~15,000. If I use multiple connections, throughput maxes out > at 3 connections and ~2,500 calls / s. If I add any more connections, the > throughput per connection drops and the total throughput stays around > ~2,500 calls / s. Has anyone done performance testing on the v1 API before? > It seems a little strange to me, that it’s so much slower, given that the > v0 API also uses HTTP (well, more or less). I would be thankful for any > comments and experience reports of other users. > > Thanks, > Dario > > -- Best Regards, Haosdent Huang

