"""CPU seconds the server process burns per request vs the request's wall time (host /proc; Linux CLK_TCK=100).""" import json, os, sys, time, subprocess sys.path.insert(0, "/tank/spikes/parakeet-ab/code") from bench import post, hostpath url, pid = sys.argv[1], int(sys.argv[2]) ids = sys.argv[3].split(",") rows = {json.loads(l)["id"]: json.loads(l) for l in open("/tank/spikes/parakeet-ab/data/lat.jsonl")} def cpu(p): f = open(f"/proc/{p}/stat").read().rsplit(")", 1)[1].split() return (int(f[11]) + int(f[12])) / os.sysconf("SC_CLK_TCK") def threads(p): return len(os.listdir(f"/proc/{p}/task")) for i in ids: wav = open(hostpath(rows[i]["wav"]), "rb").read() c0 = cpu(pid); r = post(url, wav); c1 = cpu(pid) print(f"{i:10s} dur {rows[i]['dur']:6.2f}s server {r['server_ms']:8.1f} ms process CPU {1000*(c1-c0):8.1f} ms cpu/wall {(c1-c0)*1000/r['server_ms']:.2f} threads {threads(pid)}", flush=True)