Noisy neighbor detection with eBPF
netflixtechblog.com
netflixtechblog.com
It would be interesting if kubernetes had stronger CPU isolation techniques. There is the static cpu manager which will dedicate cores for a specific container but I believe it isn’t smart enough to know about hyperthreads and so you can still get a noisy neighbour running on the other hyperthread of the core.
Ideally I would like to see kubernetes slice out a certain number of cores for the system daemons/kernel, IRQs, and NIC buffers. Some very low latency systems running on top of kubernetes recommend using isolcpus to do this but it would be nice to have something built into the kubernetes CPU manager to do this. A container running inside the guaranteed QoS class should have exclusive access to the cores and never be pre-empted.
One thing I was pitching internally when advocating for this platform is that when you have the scale to run it for the economics to make sense, you can reclaim some of AWS margins instead of having your cold tiny VMs subsidize other AWS customers higher perf. If you run the multi-tenant platform yourself, you can oversubscribe every app in a way that makes sense for your business and trade latency or throughput of software for $ on a per-container basis, so you can make much more granular and optimal decisions globally. VS having each team individually right-size their own app deployed on VMs and sharing CPU caches with randos.
I remember once at Netflix we investigated a weird latency issue on a random load balancer instance and got AWS involved: it turned out to be a noisy-neighbor on the underlying VM that gets chopped up into multiple customer-facing LB instances.
GitHub repo says it was archived 2 years ago: https://github.com/Netflix/titus
"Massive AWS EC2 Linux cloud, with FreeBSD appliances for content delivery"
[1] https://www.brendangregg.com/Slides/TracingSummit2014_FromDT...
Also it's a fantastic show.
More like a fantastic show for rotting your brain. Just like any other "reality" show out there.
Good earplugs (like Mac's Earplugs) will (almost) completely eliminate the higher pitches. There's not a lot that one can do about lower pitches, but a white noise machine can help (either a dedicated white noise machine, or a small fan, etc).
But yeah - I grew up with quiet nights and it was a challenge to live in a dorm. Earplugs for the win! :)
Got to love American built homes that have poor or non-existent insulation.
I live in a neighborhood where the question has come up a few times.
I'd love to plug up all the noisy exhaust systems on every car and truck around me, but then I'd get in trouble despite ordinances basically saying, "maintain your exhaust system as to not be disturbing to others."
If cops aren't going to enforce this and citizens aren't allowed to, then what?
I’ve never seen another corporate public facing blog asking readers to sign up with some third party service and so on, not even as a banner ad.
So it is less of technology worth sharing to marketing budget that need spending.
I long for the day when Linux apps will be transparently compiled in a way that the time-critical bits will run as ebpf progs and communicate with user space through io_uring and sched_ext will allow the system to be tailored to very specific workloads. Imagine games! How much of a difference that could make! It is a shame that games vendors simply ignore Linux.
Would love to hear more details on that front.