📜 ⬆️ ⬇️

Over-provisioning resources in mesos-based clusters

image
The Apache mesos developers claim that mesos has learned to do overprovisioning since version 0.23.0, released last September. To do this, we introduced the concept of revocable resources, and if an application runs on revoked resources, it can always be asked to free resources partially (throttle) or completely (kill). Determine which resources the task will run on during the startup phase by marking some (or all) of the resources requested by the task as revocable .


In practice, to use this feature you need:


As can be seen from the requirements above, for the effective use of the proposed model, some support is required from the tasks carried out in mesos, at least in terms of managing consumed resources. Of course, it would be very cool to write a resource estimator tied to the application logic, but even predictions based on daily statistics of load changes will give a good effect.
')
Complete with mesos now comes a pair of resource estimators:


and a couple of qos controllers:


Unfortunately, the good news ends here because support from widespread frameworks is virtually absent.

In Marathon, for example, support for revocable resources is so far extremely poorly implemented:


By the way, in the aforementioned article there is a statement which is useful for showing to the management, who demands to optimize the use of resources based on low utilization of cpu on the hosts, for example:
It is often 20%.

In kubernets , and even less - managed to find one unpopular issue with a mention of the problem.

Thus, on the basis of the mesos-marathon stack, it will not be possible to use over-provisioned resources, which obviously affects the cost-effectiveness of the solution.

Source: https://habr.com/ru/post/276773/


All Articles