Ninety Millisecond Tail
A storage service allocates pages on the request path. The allocator is purely reactive:
frame = find_free_frame();
if (frame == NULL) {
victim = pick_victim();
if (victim.dirty) disk_write(victim); // synchronous
frame = reclaim(victim);
}
disk_read(needed_page, frame);
Under load, p50 request latency stays at 3 ms but p99 jumps to 90 ms. Adding a background daemon that keeps the free-frame count between a low watermark and a high watermark drops p99 back to 5 ms, with p50 unchanged. Which explanation fits the measurements?
Sign in to answer questions and track your progress
Sign In