Summarized details here:
https://www.slideshare.net/brendangregg/performance-tuning-e...
Summarized details here:
https://www.slideshare.net/brendangregg/performance-tuning-e...
https://www.slideshare.net/brendangregg/performance-tuning-e...
I think it's a pretty good summary, and includes work from my team and some original work of my own.
Is there something I could change in it that would make it more helpful for you?
[1] Long term issues like inter-clock drift and global synchronization are a rather different problem area, and the OS has tools to help there.
A pure TSC implementation will sacrifice accuracy (because it's not being trained by the HPET or corrected by NTP), performance (because it'll need to do a full syscall occasionally), or both.
If you're sophisticated like NetFlix you can probably assure yourself it's no big deal. But it's a bad idea for others to blindly do the same thing. Look at the issue with Go's timeouts. Go used gettimeofday rather than CLOCK_MONOTONIC because the authors assumed the behavior of Google's system's clock skewing algorithm. That assumption broke spectacularly for many other people not using Google's servers.
We have had a number of clock issues, and one of the first things I try is taking and instance and switching it back to xen for a few days, but those issues have not turned out to be the clocksource. Usually NTP.
AWS can comment more about the state (safety/risk) of these clocksources (given they have access to all the SW/HW internals).
https://www.slideshare.net/AmazonWebServices/cmp402-amazon-e...