def _do_update(self, entities): BaseMemCgManager._do_update(self, entities) self._calc_reservation(entities) self.logger.debug("Memory consumption/unused/reservation: %s" % "; ".join('%s: %s/%s/%s' % (e.id, util.strmemsize(e.mem_usage), util.strmemsize(e.mem_unused), util.strmemsize(e.mem_reservation)) for e in entities))
def __update_memcg_unused(self): result = {} Z = (0, 0) for name in os.listdir(config.MEMCG__ROOT_PATH): path = os.path.join(config.MEMCG__ROOT_PATH, name) if not os.path.isdir(path): continue cnt = Z for root, subdirs, files in os.walk(path): try: ino = os.stat(root)[stat.ST_INO] except OSError: # cgroup dir removed? continue cnt = map(sum, zip(cnt, self.__nr_unused.get(ino, Z))) # convert pages to bytes result[name] = tuple(x * sysinfo.PAGE_SIZE for x in cnt) MemCg.unused_mem_estimate = result self.logger.debug("Unused memory estimate (anon/file)): %s" % "; ".join('%s: %s/%s' % (k, util.strmemsize(v1), util.strmemsize(v2)) for k, (v1, v2) in result.iteritems()))
def __strmemsize(val): if val == LoadConfig.MAX_LIMIT: return "unlim" return util.strmemsize(val)