Gilad Chaplik has uploaded a new change for review. Change subject: Utility methods and conf for blkio limits MOM integration ......................................................................
Utility methods and conf for blkio limits MOM integration Adding a MOM policy to monitor blkio tuning parameter. Adding methods to vm.py to gather io tune information from the vm Change-Id: I43be5627e5365fee1145a75e91fb5b7714e46aaf Signed-off-by: Gilad Chaplik <[email protected]> --- M debian/vdsm.install M lib/vdsm/config.py.in M lib/vdsm/constants.py.in M tests/functional/momTests.py M vdsm/Makefile.am M vdsm/mom.conf.in M vdsm/mom.d/00-defines.policy A vdsm/mom.d/05-blkiotune.policy M vdsm/virt/vm.py 9 files changed, 48 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/76/28576/1 diff --git a/debian/vdsm.install b/debian/vdsm.install index 696286d..8f0b1da 100644 --- a/debian/vdsm.install +++ b/debian/vdsm.install @@ -18,6 +18,7 @@ ./etc/vdsm/mom.d/02-balloon.policy ./etc/vdsm/mom.d/03-ksm.policy ./etc/vdsm/mom.d/04-cputune.policy +./etc/vdsm/mom.d/05-blkiotune.policy ./etc/vdsm/svdsm.logger.conf ./etc/vdsm/upgrade.logger.conf ./etc/vdsm/vdsm-tmpfiles.conf diff --git a/lib/vdsm/config.py.in b/lib/vdsm/config.py.in index 194cbd7..f12de74 100644 --- a/lib/vdsm/config.py.in +++ b/lib/vdsm/config.py.in @@ -174,6 +174,10 @@ ('vm_sample_cpu_tune_window', '2', None), + ('vm_sample_blkio_tune_interval', '15', None), + + ('vm_sample_blkio_tune_window', '2', None), + ('trust_store_path', '@TRUSTSTORE@', 'Where the certificates and keys are situated.'), diff --git a/lib/vdsm/constants.py.in b/lib/vdsm/constants.py.in index e8c193a..1954971 100644 --- a/lib/vdsm/constants.py.in +++ b/lib/vdsm/constants.py.in @@ -51,6 +51,8 @@ # The Metadata URI for VM Cpu tunables METADATA_VM_CPU_TUNE_URI = 'http://ovirt.org/vm/tune/1.0' +# The Metadata URI for VM Device tunables +METADATA_VM_DEVICE_TUNE_URI = 'http://ovirt.org/vm/device/tune/1.0' # This is the domain version translation list # DO NOT CHANGE OLD VALUES ONLY APPEND diff --git a/tests/functional/momTests.py b/tests/functional/momTests.py index 62036cf..33b1f9d 100644 --- a/tests/functional/momTests.py +++ b/tests/functional/momTests.py @@ -130,6 +130,20 @@ vcpuPeriod) self.assertEqual(status, SUCCESS, msg) + def _setBlkIoTune(self, disk, blkioMap): + # Get disk's statistics before the operation. +# TODO + self.assertEqual(status, SUCCESS, msg) + + candidateStats = filter(self._statsOK, statsList) + + for stats in candidateStats: + status, msg = self.s.setDiskBlkioTuneMap( + stats['vmId'], + disk, + #TODO#) + self.assertEqual(status, SUCCESS, msg) + def _setPolicy(self, policy): curpath = os.path.dirname(__file__) file_name = os.path.join(curpath, policy) diff --git a/vdsm/Makefile.am b/vdsm/Makefile.am index 3d6ac9c..de43bb1 100644 --- a/vdsm/Makefile.am +++ b/vdsm/Makefile.am @@ -106,6 +106,7 @@ mom.d/02-balloon.policy \ mom.d/03-ksm.policy \ mom.d/04-cputune.policy \ + mom.d/05-blkiotune.policy \ sourceRoute.sh \ sudoers.vdsm.in \ svdsm.logger.conf.in \ diff --git a/vdsm/mom.conf.in b/vdsm/mom.conf.in index c850fff..3d4736b 100644 --- a/vdsm/mom.conf.in +++ b/vdsm/mom.conf.in @@ -25,7 +25,7 @@ policy-engine-interval: 10 # A comma-separated list of Controller plugins to enable -controllers: Balloon, KSM, CpuTune +controllers: Balloon, KSM, CpuTune, BlkIoTune # Sets the maximum number of statistic samples to keep for the purpose of # calculating moving averages. diff --git a/vdsm/mom.d/00-defines.policy b/vdsm/mom.d/00-defines.policy index 1d98990..ca6763f 100644 --- a/vdsm/mom.d/00-defines.policy +++ b/vdsm/mom.d/00-defines.policy @@ -7,4 +7,5 @@ (defvar ksmEnabled 1) (defvar balloonEnabled 0) (defvar cpuTuneEnabled 0) +(defvar blkIoTuneEnabled 0) diff --git a/vdsm/mom.d/05-blkiotune.policy b/vdsm/mom.d/05-blkiotune.policy new file mode 100644 index 0000000..c71f0fb --- /dev/null +++ b/vdsm/mom.d/05-blkiotune.policy @@ -0,0 +1,3 @@ +### Auto-blkioTune ############################################################### +# +#TODO diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py index 20d823a..5c6db33 100644 --- a/vdsm/virt/vm.py +++ b/vdsm/virt/vm.py @@ -204,11 +204,16 @@ self._sampleCpuTune, config.getint('vars', 'vm_sample_cpu_tune_interval'), config.getint('vars', 'vm_sample_cpu_tune_window'))) + self.sampleBlkIoTune = ( + sampling.AdvancedStatsFunction( + self._sampleBlkIoTune, + config.getint('vars', 'vm_sample_blkio_tune_interval'), + config.getint('vars', 'vm_sample_blkio_tune_window'))) self.addStatsFunction( self.highWrite, self.updateVolumes, self.sampleCpu, self.sampleDisk, self.sampleDiskLatency, self.sampleNet, - self.sampleBalloon, self.sampleCpuTune) + self.sampleBalloon, self.sampleCpuTune, self.sampleBlkIoTune) def _highWrite(self): if not self._vm.isDisksStatsCollectionEnabled(): @@ -280,6 +285,11 @@ value = nodeList[0].childNodes[0].data infos['vcpuLimit'] = value + return infos + + def _sampleBlkIoTune(self): + infos = self._dom.schedulerParameters() + #TODO _getDiskBlkioTuneMap(self, disk, stats) return infos def _diff(self, prev, curr, val): @@ -374,6 +384,14 @@ self.log.debug('Domain Metadata is not set') ret['vcpu_user_limit'] = 100 + stats.update(ret) + + def _getBlkIoTuneInfo(self, stats): + #TODO + stats.update(ret) + + def _getUserBlkIoTuneInfo(self, disk, stats): + #TODO stats.update(ret) @classmethod @@ -505,6 +523,8 @@ self._getCpuTuneInfo(stats) self._getCpuCount(stats) self._getUserCpuTuneInfo(stats) + self._getBlkIoTuneInfo(stats) + self._getUserBlkIoTuneInfo(stats) return stats -- To view, visit http://gerrit.ovirt.org/28576 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I43be5627e5365fee1145a75e91fb5b7714e46aaf Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Gilad Chaplik <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
