import csv, sys p = sys.argv[1] rows = list(csv.DictReader(l for l in open(p) if not l.startswith("#"))) M = lambda v: round(int(v) / 1048576, 1) if v and v.lstrip("-").isdigit() else v keys = ["anon", "file", "file_mapped", "active_file", "inactive_file", "active_anon", "shmem", "memory_current", "memory_peak", "swap_current"] print("samples", len(rows), "first", rows[0]["ts"], "last", rows[-1]["ts"]) for k in keys: vals = [int(r[k]) for r in rows if r.get(k, "").isdigit()] if vals: print("%-15s max %7.1f M end %7.1f M (%%limit max %.1f)" % (k, max(vals)/1048576, vals[-1]/1048576, 100*max(vals)/int(rows[-1]["memory_max"]))) for k in ("pglazyfree_pages", "pglazyfreed_pages", "anon_thp", "ev_max", "ev_oom_kill", "proc_VmHWM"): if k in rows[-1]: print(k, "end", M(rows[-1][k]) if k in ("anon_thp", "proc_VmHWM") else rows[-1][k])