12 lines
852 B
Python
12 lines
852 B
Python
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])
|