I have to find a solution to a problem and I don't know where to start.

Lets imagine I have a list of n containers and m processes. Each process resides already within a container and have 4 attributes, ex: cpu, memory, IO and network utilization.

The sum of each attribute type of all processes within a host cannot exceed the physical limitation of resources of that host, ex: 5 processes consuming 10% of cpu within a host can be together within a host, but 15 can't.

I would like to find the best (or a good one) solution that assigns those processes to the hosts with the following restrictions:

  • Use the minimum containers/hosts possibles.
  • Minimize processes exchanges, from one host to another, if a process is already in one host it would be desirable for it to stay there.
  • The processes attributes can changes dynamically but there might be a trend based on time or prior behavior.
  • Maximize a host CPU utilization
  • Maximize memory utilization
  • Minimize IO utilization within a host so processes don't conflict to each other.
  • Minimize network utilization.

I have seen a proposed solution of a simpler version of this problem (just using CPU attribute), using Markov chains evaluating the past values of the CPU utilization.

I first thought applying a multi-objectives Knapsack approach.

Any help please.


  • $\begingroup$ multi-commodity flow techniques might be useful $\endgroup$ – Abel Molina Oct 12 '13 at 6:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.