def cmd_memdebug(settings): # peak memory usage (bytes on OS X, kilobytes on Linux) res_usage = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss if os.uname()[0] == 'Linux': res_usage /= 1024; # kilobytes? # XXX: http://stackoverflow.com/questions/938733/total-memory-used-by-python-process #res_usage /= resource.getpagesize() db_size = os.path.getsize(os.path.realpath(settings.dbref[10:])) for l, v in ( ( 'Storage Size', lib.human_readable_bytesize( db_size ) ), ( 'Resource Usage', lib.human_readable_bytesize(res_usage) ), ): log.std('{green}%s{default}: {bwhite}%s{default}', l, v)
def rsr_update_metafiles(prog=None, volume=None, volumedb=None, opts=None): log.debug("{bblack}rsr{bwhite}:update-volume{default}") i = 0 for path in res.Metafile.walk(prog.pwd): print(path) i += 1 new, updated = False, False metafile = res.Metafile(path) #if options: #metafile.basedir = 'media/application/metalink/' #if metafile.key in volumedb: # metafile = volumedb[metafile.key] # #log.info("Found %s in volumedb", metafile.key) #else: # new = True if metafile.needs_update(): log.note("Updating metafile for %s", metafile.path) metafile.update() updated = True #if updated or metafile.key not in volumedb: # log.note("Writing %s to volumedb", metafile.key) # volumedb[metafile.key] = metafile # new = True if new or updated: #if options.persist_meta: #if metafile.non_zero: # log.note("Overwriting previous metafile at %s", metafile.path) metafile.write() for k in metafile.data: print('\t'+k+':', metafile.data[k]) print('\tSize: ', lib.human_readable_bytesize( metafile.data['Content-Length'], suffix_as_separator=True)) else: print('\tOK') volume.store.sync()
def main(): data = confparse.Values(dict(version=1)) print "=" * 79 data.hostid = os.popen2("hostid")[1].read().strip() data.date = datetime.datetime.now().isoformat() print "Date:", data.date # .isoformat() print "Host-ID:", data.hostid fssttat = os.statvfs(os.sep) print "Filesystem:", os.sep print "_" * 79 data.fs = confparse.Values(dict()) # finding total inode stats is more involved, block is more simple print fssttat.f_bsize, "preferred blocksize" print fssttat.f_frsize, "fundamental filesystem block" print fssttat.f_blocks, "blocks (total, in units of f_frsize)" print fssttat.f_bavail, "available blocks" print fact = fssttat.f_frsize / 1024 print "1k blocks" print "factor", fact _1kblocks = fssttat.f_blocks * fact _1kblocks_free = fssttat.f_bfree * fact _1kblocks_avail = fssttat.f_bavail * fact _1kblocks_used = (fssttat.f_blocks - fssttat.f_bavail) * fact _1kblocks_used2 = (fssttat.f_blocks - fssttat.f_bfree) * fact print _1kblocks print _1kblocks_avail, "available" print _1kblocks_free, "free?" # print _1kblocks_used, 'used' print _1kblocks_used2, "used2" print fssttat.f_bfree * fact, "free?" print print human_readable_bytesize(_1kblocks * 1024, True, False, 0), "in blocks" print human_readable_bytesize(_1kblocks_avail * 1024, True, False, 0), "in available blocks" # print human_readable_bytesize(_1kblocks_used*1024, True, False, 0), 'in used blocks' print human_readable_bytesize(_1kblocks_used2 * 1024, True, False, 0), "in used2 blocks" print data.fs.inodes = fssttat.f_files print "INodes", data.fs.inodes # print fssttat.f_favail, 'inodes free' available to non-super user, same as ffree data.fs.inodes_used = fssttat.f_files - fssttat.f_ffree print "INodes-Used:", data.fs.inodes_used data.fs.inode_usage = int(round(data.fs.inodes_used * 100.0 / fssttat.f_files)) print "INode-Usage:", data.fs.inode_usage, "(%)" data.fs.inodes_free = fssttat.f_ffree print "INodes-Free:", data.fs.inodes_free data.fs.inode_availability = int(round(fssttat.f_ffree * 100.0 / fssttat.f_files)) print "INode-Availability:", data.fs.inode_availability, "(%)" print "-" * 79 print "=" * 79 # if bencode: # print bencode.bencode( data.copy() ) # XXX: get a rating based on several # resource_space # resource_count complexity(data)
t, sa.query(metadata.tables[t].count()).all()[0][0]) except Exception, e: log.err("Count failed for %s: %s", t, e) # peak memory usage (bytes on OS X, kilobytes on Linux) res_usage = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss if os.uname()[0] == 'Linux': res_usage /= 1024; # kilobytes? # XXX: http://stackoverflow.com/questions/938733/total-memory-used-by-python-process #res_usage /= resource.getpagesize() # FIXME: does not use dbref according to settings, may fail/report wrong file db_size = os.path.getsize(os.path.expanduser(__db__)) for l, v in ( ( 'Storage Size', lib.human_readable_bytesize( db_size ) ), ( 'Resource Usage', lib.human_readable_bytesize(res_usage) ), ): log.std('{green}%s{default}: {bwhite}%s{default}', l, v) log.std('\n{green}info {bwhite}OK{default}') def cmd_list(settings): """ List to root tags. """ sa = get_session(settings.dbref, metadata=metadata) roots = sa.query(Tag).filter(Tag.contexts == None).all() for root in roots: print(root.name)