diff options
Diffstat (limited to 'scripts/profiling/doc_put_memory_usage')
| -rwxr-xr-x | scripts/profiling/doc_put_memory_usage/get-soledad-and-couch-mem.py | 46 | ||||
| -rwxr-xr-x | scripts/profiling/doc_put_memory_usage/profile-procs.py | 54 | 
2 files changed, 100 insertions, 0 deletions
diff --git a/scripts/profiling/doc_put_memory_usage/get-soledad-and-couch-mem.py b/scripts/profiling/doc_put_memory_usage/get-soledad-and-couch-mem.py new file mode 100755 index 00000000..b2b35d30 --- /dev/null +++ b/scripts/profiling/doc_put_memory_usage/get-soledad-and-couch-mem.py @@ -0,0 +1,46 @@ +#!/usr/bin/python + + +import logging +import argparse +import psutil +import time + + +def find_procs(procs): +    result = [] +    for name, executable in procs: +        found = filter( +            lambda p: executable == p.name, +            psutil.process_iter()) +        if len(found) == 1: +            result.append(found[0]) +    return result + + +def log_memory(soledad, bigcouch): +    while True: +        print "%f %f" % \ +            (soledad.get_memory_percent(), bigcouch.get_memory_percent()) +        time.sleep(1) + + +if __name__ == '__main__': +     +    # configure logger +    logger = logging.getLogger(__name__) +    LOG_FORMAT = '%(asctime)s %(message)s' +    logging.basicConfig(format=LOG_FORMAT, level=logging.INFO) + + +    # parse command line +    parser = argparse.ArgumentParser() +    parser.add_argument( +        '-l', dest='logfile', +        help='log output to file') +    args = parser.parse_args() + +    log_memory(*find_procs([ +        ('Soledad', 'twistd'), +        ('Bigcouch', 'beam.smp')])) +     diff --git a/scripts/profiling/doc_put_memory_usage/profile-procs.py b/scripts/profiling/doc_put_memory_usage/profile-procs.py new file mode 100755 index 00000000..53f5977b --- /dev/null +++ b/scripts/profiling/doc_put_memory_usage/profile-procs.py @@ -0,0 +1,54 @@ +#!/usr/bin/python + + +import logging +import argparse +import psutil +import time + + +def find_procs(procs): +    result = [] +    for name, executable in procs: +        found = filter( +            lambda p: executable == p.name, +            psutil.process_iter()) +        if len(found) == 1: +            result.append(found[0]) +    return result + + +def log_usage(procs, logger): +    names = [proc.name for proc in procs] +    logger.info("Logging cpu and memory for: %s" % names) +    while True: +        s = '%f %f' %\ +            (psutil.cpu_percent(), psutil.phymem_usage().percent) +        for proc in procs: +            s += ' %f %f' % \ +                 (proc.get_cpu_percent(), proc.get_memory_percent()) +        logger.info(s) +        time.sleep(1) + + +if __name__ == '__main__': +    # parse command line +    parser = argparse.ArgumentParser() +    parser.add_argument( +        '-l', dest='logfile', +        help='log output to file') +    args = parser.parse_args() + +    # configure logger +    logger = logging.getLogger(__name__) +    LOG_FORMAT = '%(asctime)s %(message)s' +    logging.basicConfig(format=LOG_FORMAT, level=logging.INFO) + +    if args.logfile is not None: +        handler = logging.FileHandler(args.logfile, mode='a') +        handler.setFormatter(logging.Formatter(fmt=LOG_FORMAT)) +        logger.addHandler(handler) + +    log_usage(find_procs([ +        ('Soledad', 'twistd'), +        ('Bigcouch', 'beam.smp')]), logger)  | 
