def set_limits(self): """ Set per-hierarchy limits based on the cgroup name (agent or particular extension) """ if not conf.get_cgroups_enforce_limits(): return if self.name is None: return for ext in conf.get_cgroups_excluded(): if ext in self.name.lower(): logger.info('No cgroups limits for {0}'.format(self.name)) return # default values cpu_limit = DEFAULT_CPU_LIMIT_EXT mem_limit = max( DEFAULT_MEM_LIMIT_MIN_MB, round(self._osutil.get_total_mem() * DEFAULT_MEM_LIMIT_PCT / 100, 0)) # agent values if AGENT_NAME.lower() in self.name.lower(): cpu_limit = DEFAULT_CPU_LIMIT_AGENT mem_limit = min(DEFAULT_MEM_LIMIT_MAX_MB, mem_limit) msg = '{0}: {1}% {2}mb'.format(self.name, cpu_limit, mem_limit) logger.info("Setting cgroups limits for {0}".format(msg)) success = False try: self.set_cpu_limit(cpu_limit) self.set_memory_limit(mem_limit) success = True except Exception as ge: msg = '[{0}] {1}'.format(msg, ustr(ge)) raise finally: from azurelinuxagent.common.event import add_event, WALAEventOperation add_event(AGENT_NAME, version=CURRENT_VERSION, op=WALAEventOperation.SetCGroupsLimits, is_success=success, message=msg, log_event=False)
def set_limits(self): """ Set per-hierarchy limits based on the cgroup name (agent or particular extension) """ if not conf.get_cgroups_enforce_limits(): return if self.name is None: return for ext in conf.get_cgroups_excluded(): if ext in self.name.lower(): logger.info('No cgroups limits for {0}'.format(self.name)) return # default values cpu_limit = DEFAULT_CPU_LIMIT_EXT mem_limit = max(DEFAULT_MEM_LIMIT_MIN_MB, round(self._osutil.get_total_mem() * DEFAULT_MEM_LIMIT_PCT / 100, 0)) # agent values if AGENT_NAME.lower() in self.name.lower(): cpu_limit = DEFAULT_CPU_LIMIT_AGENT mem_limit = min(DEFAULT_MEM_LIMIT_MAX_MB, mem_limit) msg = '{0}: {1}% {2}mb'.format(self.name, cpu_limit, mem_limit) logger.info("Setting cgroups limits for {0}".format(msg)) success = False try: self.set_cpu_limit(cpu_limit) self.set_memory_limit(mem_limit) success = True except Exception as ge: msg = '[{0}] {1}'.format(msg, ustr(ge)) raise finally: from azurelinuxagent.common.event import add_event, WALAEventOperation add_event( AGENT_NAME, version=CURRENT_VERSION, op=WALAEventOperation.SetCGroupsLimits, is_success=success, message=msg, log_event=False)
def set_limits(self): """ Set per-hierarchy limits based on the cgroup name (agent or particular extension) """ if not conf.get_cgroups_enforce_limits(): return if self.name is None: return for ext in conf.get_cgroups_excluded(): if ext in self.name.lower(): logger.info('No cgroups limits for {0}'.format(self.name)) return # default values cpu_limit = self.get_cpu_limits() mem_limit = self.get_memory_limits() msg = '{0}: {1}% {2}mb'.format(self.name, cpu_limit, mem_limit) logger.info("Setting cgroups limits for {0}".format(msg)) success = False try: self.set_cpu_limit(cpu_limit) self.set_memory_limit(mem_limit) success = True except Exception as ge: msg = '[{0}] {1}'.format(msg, ustr(ge)) raise finally: from azurelinuxagent.common.event import add_event, WALAEventOperation add_event( AGENT_NAME, version=CURRENT_VERSION, op=WALAEventOperation.SetCGroupsLimits, is_success=success, message=msg, log_event=False) # Returning the limits - self.threshold = {"cpu": cpu_limit, "memory": mem_limit}
def set_limits(self): """ Set per-hierarchy limits based on the cgroup name (agent or particular extension) """ if not conf.get_cgroups_enforce_limits(): return if self.name is None: return for ext in conf.get_cgroups_excluded(): if ext in self.name.lower(): logger.info('No cgroups limits for {0}'.format(self.name)) return # default values cpu_limit = self.get_cpu_limits() mem_limit = self.get_memory_limits() msg = '{0}: {1}% {2}mb'.format(self.name, cpu_limit, mem_limit) logger.info("Setting cgroups limits for {0}".format(msg)) success = False try: self.set_cpu_limit(cpu_limit) self.set_memory_limit(mem_limit) success = True except Exception as ge: msg = '[{0}] {1}'.format(msg, ustr(ge)) raise finally: from azurelinuxagent.common.event import add_event, WALAEventOperation add_event(AGENT_NAME, version=CURRENT_VERSION, op=WALAEventOperation.SetCGroupsLimits, is_success=success, message=msg, log_event=False) # Returning the limits - self.threshold = {"cpu": cpu_limit, "memory": mem_limit}
def assert_get_cgroups_excluded(self, patch_get, config, expected_value): patch_get.return_value = config self.assertEqual(expected_value, conf.get_cgroups_excluded(self.conf))