4 ms·
Top-down performance analysis methodology
- jacques_chester 8y agoA note here that "front end" and "back end" are meant in the CPU microarchitecture sense, not the web development sense. I think Brendan Gregg's Systems Performance: Enterprise and the Cloud is still the single best volume on this topic; I'd recommend Gunther's Guerilla Capacity Planning as a useful followup to get a foothold on theory.
- m0zg 8y agoWould love to see the exact same thing but for ARM, and in particular aarch64.
- shereadsthenews 8y agoUnfortunately aarch64 does not have anywhere near the number and variety of events offered by the X86 PMU.
- m0zg 8y agoBut it does have some (usually), and it needs perf optimization much more, especially in regards to cache misses and such, because RAM is usually pretty slow on lower end ARM.
- SilverSurfer972 8y agoWould play nicely with the Scalability Prediction tools we built: https://stacktical.com/demo https://stacktical.com/demo As soon as a regression is detected in the CICD pipeline a Top-down analysis can be done to according to the amount of Serialization and/or Synchronization penalties.
- moab 8y agoI wish the author had explained how he went from identifying that the issue is stalled references to DRAM to the CYCLE_ACTIVITY.STALLS_L3_MISS performance event. Similarly from DRAM_Bound to MEM_LOAD_RETIRED.L3_MISS_PS. My complaint is that there's still a lot of magic here that requires carefully reading the Intel manuals that is elided in this post. That said, thanks to the author for the post---it is still very useful. Edit: the author has another post that covers this information https://dendibakh.github.io/blog/2018/06/01/PMU-counters-and-profiling-basics https://dendibakh.github.io/blog/2018/06/01/PMU-counters-and...
- dendibakh 8y agoHi, I'm glad you like the article. The process how I went from TMAM metric to particular event that was used to calculate it is describe in the TMAM metrics table: https://download.01.org/perfmon/TMA_Metrics.xlsx https://download.01.org/perfmon/TMA_Metrics.xlsx In the same row for DRAM_bound metric there is precise event PEBS specified that we can use for locating the issue. Sampling on the precise event will let us detect exact place in the code where we have the most amount of L3 misses. Let me know if you have further questions!
- moab 8y agoThanks for the reply and the pointer!