There are two decisions that need to be made:I think there is another way of looking at it, give some free memory
- how much memory a guest should be given
- given some guest memory, what's the best use for it
The first question can perhaps be answered by looking at guest I/O
rates and giving more memory to more active guests. The second
question is hard, but not any different than running non-virtualized
- except if we can detect sharing or duplication. In this case,
dropping a duplicated page is worthwhile, while dropping a shared
page provides no benefit.
1. Can the guest run more applications or run faster
2. Can the host potentially get this memory via ballooning or some
other means to start newer guest instances
I think the answer to 1 and 2 is yes.
How the patch helps answer either question, I'm not sure. I don'tPreferential dropping as selected by the host, that knows about the
think preferential dropping of unmapped page cache is the answer.
setup and if there is duplication involved. While we use the term
preferential dropping, remember it is still via LRU and we don't
always succeed. It is a best effort (if you can and the unmapped pages
are not highly referenced) scenario.
There are two situationsThose tell you how to balance going after the different classes ofIf there is no memory pressure on the host, there is no reason for
things that we can reclaim.
Again, this is useless when ballooning is being used. But, I'm thinking
of a more general mechanism to force the system to both have MemFree
_and_ be acting as if it is under memory pressure.
the guest to pretend it is under pressure. If there is memory
pressure on the host, it should share the pain among its guests by
applying the balloon. So I don't think voluntarily dropping cache
is a good direction.
1. Voluntarily drop cache, if it was setup to do so (the host knows
that it caches that information anyway)
2. Drop the cache on either a special balloon option, again the host
knows it caches that very same information, so it prefers to free that
up first.