Re: High latency when scheduling and executing many tiny tasks.

2015-07-17 Thread Benjamin Mahler
I've filed a ticket to immediately re-offer recovered resources from terminal tasks / executors: https://issues.apache.org/jira/browse/MESOS-3078 On Fri, Jul 17, 2015 at 2:24 PM, Philip Weaver wrote: > Your advice worked and made a huge difference. With > allocation_interval=50ms, the 1000 task

Re: High latency when scheduling and executing many tiny tasks.

2015-07-17 Thread Alexander Gallego
I take back the executor in scala. Just looked at the source and both PathExecutor and CommandExecutor proxy to mesos TaskBuilder.setCommand executor match { case CommandExecutor() => builder.setCommand(TaskBuilder.commandInfo(app, Some(taskId), host, ports, envPrefix))

Re: High latency when scheduling and executing many tiny tasks.

2015-07-17 Thread Philip Weaver
Your advice worked and made a huge difference. With allocation_interval=50ms, the 1000 tasks now execute in 21s instead of 120s. Thanks. On Fri, Jul 17, 2015 at 2:20 PM, Philip Weaver wrote: > Ok, thanks! > > On Fri, Jul 17, 2015 at 2:18 PM, Alexander Gallego > wrote: > >> I use a similar patte

Re: High latency when scheduling and executing many tiny tasks.

2015-07-17 Thread Philip Weaver
Ok, thanks! On Fri, Jul 17, 2015 at 2:18 PM, Alexander Gallego wrote: > I use a similar pattern. > > I have my own scheduler as you have. I deploy my own executor which > downloads a tar from some storage and effectively ` execvp ( ... ) ` a > proc. It monitors the child proc and reports status

Re: High latency when scheduling and executing many tiny tasks.

2015-07-17 Thread Alexander Gallego
I use a similar pattern. I have my own scheduler as you have. I deploy my own executor which downloads a tar from some storage and effectively ` execvp ( ... ) ` a proc. It monitors the child proc and reports status of child pid exit status. Check out the Marathon code if you are writing in scala

Re: High latency when scheduling and executing many tiny tasks.

2015-07-17 Thread Philip Weaver
Awesome, I suspected that was the case, but hadn't discovered the --allocation_interval flag, so I will use that. I installed from the mesosphere RPMs and didn't change any flags from there. I will try to find some logs that provide some insight into the execution times. I am using a command task

Re: High latency when scheduling and executing many tiny tasks.

2015-07-17 Thread Benjamin Mahler
One other thing, do you use an executor to run many tasks? Or are you using a command task? On Fri, Jul 17, 2015 at 1:54 PM, Benjamin Mahler wrote: > Currently, recovered resources are not immediately re-offered as you > noticed, and the default allocation interval is 1 second. I'd recommend > l

Re: High latency when scheduling and executing many tiny tasks.

2015-07-17 Thread Benjamin Mahler
Currently, recovered resources are not immediately re-offered as you noticed, and the default allocation interval is 1 second. I'd recommend lowering that (e.g. --allocation_interval=50ms), that should improve the second bullet you listed. Although, in your case it would be better to immediately re

High latency when scheduling and executing many tiny tasks.

2015-07-17 Thread Philip Weaver
I'm trying to understand the behavior of mesos, and if what I am observing is typical or if I'm doing something wrong, and what options I have for improving the performance of how offers are made and how tasks are executed for my particular use case. I have written a Scheduler that has a queue of