[This patch is reviewed in parallel on GitHub]

Hi,

Please review my latest take on fixing ganeti memory model. I've tried to 
implement the memory model as discussed in [1] and proposed in [2], but without 
introducing memory overcommitment (swap etc) or dependencies on 2.17 features. 
The changes should fix missing memory, node memory as reported by hbal & 
friends resulting in a more conservative estimation of available memory on the 
node. This should prevent situations, when the KVM node is involuntarily 
oversubscribed - as instances touch more memory, they grow and at some point 
this leads to OOM kills. This implementation of the proposed memory model can 
be easily extended to support memory overcommitment (as in [2]) by adding 
additional state variables (total/available swap size) and a additional 
constraint based on overcommitment ratio, some hints are left in code comments.

To comment on this patch using GitHub see [3].

[1] https://code.google.com/p/ganeti/issues/detail?id=127
[2] 
https://groups.google.com/forum/#!searchin/ganeti-devel/memory$20model%7Csort:relevance/ganeti-devel/lDfiAvBeqPw/JBXyAUfuAwAJ
[3] https://github.com/RafaelMarinheiro/ganeti/pull/3

Viktor Bachraty (3):
  Htools should use state-of-record instance size
  Add optStaticKvmNodeMemory to HTools
  Redesign Ganeti memory model

 src/Ganeti/HTools/Backend/Luxi.hs          |  19 ++--
 src/Ganeti/HTools/CLI.hs                   |  13 ++-
 src/Ganeti/HTools/Cluster.hs               |  17 ++--
 src/Ganeti/HTools/ExtLoader.hs             |   6 +-
 src/Ganeti/HTools/Loader.hs                |  26 +++--
 src/Ganeti/HTools/Node.hs                  | 155 +++++++++++++++++++++--------
 src/Ganeti/HTools/Program/Hail.hs          |   1 +
 src/Ganeti/HTools/Program/Hbal.hs          |   1 +
 src/Ganeti/HTools/Program/Hinfo.hs         |   1 +
 src/Ganeti/HTools/Program/Hroller.hs       |   1 +
 src/Ganeti/HTools/Program/Hspace.hs        |   1 +
 src/Ganeti/HTools/Program/Hsqueeze.hs      |   1 +
 test/hs/Test/Ganeti/HTools/Backend/Text.hs |  14 ++-
 test/hs/Test/Ganeti/HTools/Node.hs         |  11 +-
 14 files changed, 190 insertions(+), 77 deletions(-)

-- 
2.12.0.367.g23dc2f6d3c-goog

Reply via email to