Hi haosdent,

thanks for the pointer! Your results show exactly what I’m experiencing. I 
think especially for bigger clusters this could be very problematic. It would 
be great to get some input from the folks working on the HTTP API, especially 
Anand.

Thanks,
Dario

> On Oct 16, 2016, at 12:01 AM, haosdent <haosd...@gmail.com> wrote:
> 
> 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 <dre...@apple.com 
> <mailto:dre...@apple.com>> 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

Reply via email to