mesos-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dario Rexin <dre...@apple.com>
Subject Re: Performance regression in v1 api vs v0
Date Sun, 16 Oct 2016 07:05:26 GMT
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 <haosdent@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 <drexin@apple.com <mailto:drexin@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


Mime
View raw message