I'm not aware of any minimum offer size option in mesos. What I've seen success with is holding onto small offers and waiting until I accumulate enough to launch the large task. This way, the need for large offers doesn't affect the cluster, but the framework that needs it gets it. On Wed, Jun 24, 2015 at 9:30 AM Brian Candler <[email protected]> wrote:
> The following problem is mentioned in the Mesos technical paper at > http://mesos.berkeley.edu/mesos_tech_report.pdf > > " when a cluster is filled by tasks with small resource requirements, a > framework f with large resource requirements may starve, because whenever a > small task finishes, f cannot accept the resources freed up by it, but > other frameworks can. To accommodate frameworks with large per-task > resource requirements, allocation modules can support a minimum offer size > on each slave, and abstain from offering resources on that slave until this > minimum amount is free." > > However "minimum offer size" is not mentioned subsequently. Can someone > explain how this works in practice? > > For example, suppose you have machines with 32GB of RAM, one framework > which has a large queue of jobs which use 1GB each. Then along comes > another framework with some jobs which require 20GB. > > The problem is that when a 1GB job terminates, 1GB slots will be offered > to both frameworks; the second one will be forced to decline them (not big > enough), but the first framework will continue to run jobs. > > Is the solution here to set the minimum offer size to 20GB? And this means > that the 1GB jobs will slowly drain away until 20GB is free, at which point > an offer is made to both frameworks? > > If so, how is it actually configured? (I googled "mesos minimum offer > size" but only found variations on that paper, not the actual config > settings) > > Thanks, > > Brian. > >

