You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by GitBox <gi...@apache.org> on 2018/12/14 12:01:16 UTC

[GitHub] wido opened a new pull request #2795: kvm: Properly report available memory to Management Server

wido opened a new pull request #2795: kvm: Properly report available memory to Management Server
URL: https://github.com/apache/cloudstack/pull/2795
 
 
   ## Description
   The KVM Agent had two mechanisms for reporting its capabilities
   and memory to the Management Server.
   
   On startup it would ask libvirt the amount of Memory the Host has
   and subtract and add the reserved and overcommit memory.
   
   When the HostStats were however reported to the Management Server
   these two configured values on the Agent were no longer reported
   in the statistics thus showing all the available memory in the
   Agent/Host to the Management Server.
   
   This commit unifies this by using the same logic on Agent Startup
   and during statistics reporting.
   
     memory=3069636608, reservedMemory=1073741824
   
   This was reported by a 4GB Hypervisor with this setting:
   
     host.reserved.mem.mb=1024
   
   The GUI (thus API) would then show:
   
     Memory Total	2.86 GB
   
   This way the Agent properly 'lies' to the Management Server about its
   capabilities in terms of Memory.
   
   This is very helpful if you want to overprovision or undercommit machines
   for various reasons.
   
   Overcommitting can be done when KSM or ZSwap or a fast SWAP device is
   installed in the machine.
   
   Underprovisioning is done when the Host might run other tasks then a KVM
   hypervisor, for example when it runs in a hyperconverged setup with Ceph.
   
   In addition internally many values have been changed from a Double to a Long
   and also store the amount of bytes instead of Kilobytes.
   
   ## Types of changes
   - [ ] Breaking change (fix or feature that would cause existing functionality to change)
   - [ ] New feature (non-breaking change which adds functionality)
   - [ ] Bug fix (non-breaking change which fixes an issue)
   - [x] Enhancement (improves an existing feature and functionality)
   - [ ] Cleanup (Code refactoring and cleanup, that may add test cases)
   
   ## How Has This Been Tested?
   
   I tested this on a CloudStack 4.12 test setup running on my local system.
   
   The KVM Agent will report the amount of memory it has minus any reservations. This way the Mgmt server will never know the exact amount of memory the Agent has.
   
   ## Checklist:
   - [x] I have read the [CONTRIBUTING](https://github.com/apache/cloudstack/blob/master/CONTRIBUTING.md) document.
   - [x] My code follows the code style of this project.
   - [ ] My change requires a change to the documentation.
   - [ ] I have updated the documentation accordingly.
   Testing
   - [x] I have added tests to cover my changes.
   - [ ] All relevant new and existing integration tests have passed.
   - [ ] A full integration testsuite with all test that can run on my environment has passed.
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services