
Key components of Memory Bandwidth Monitoring (MBM) Usage models are discussed in the next article in the series, including advanced workload fingerprinting and telemetry, and enhanced NUMA-aware scheduling. The same flexible per-thread/app/VM/container monitoring is possible, now enhanced with visibility into memory bandwidth. The Memory Bandwidth Monitoring (MBM) feature introduced on the Intel® Xeon® processor E5 v4 family provides additional advanced telemetry by extending CMT to include new event codes per RMID. To fully understand application behavior, however, monitoring of memory bandwidth is also needed, as some apps have low cache sensitivity due to either very small working sets (compute bound) or extremely large working sets that do not fit well in the cache (streaming applications). CMT is effective at detecting noisy-neighbors in the cache, understanding the cache sensitivity of applications, and debugging performance problems. The prior generation Intel® Xeon® processors E5 v3 introduced Cache Monitoring Technology (CMT), which enables per-RMID (and effectively per thread, app, or VM) tracking of last-level cache (LLC) usage per thread.

What is Memory Bandwidth Monitoring (MBM)? More information on the Intel RDT feature set can be found here, and an animation illustrating the key principles behind Intel RDT is posted here.
MEMORY MONITOR SERIES
MBM is part of a larger series of technologies called Intel Resource Director Technology (Intel RDT).
MEMORY MONITOR SOFTWARE
Information on proof points and software support is provided in subsequent articles.

This article provides an overview of the MBM feature and architecture, while the next article in the series discusses use models. The new Memory Bandwidth Monitoring (MBM) feature helps address this issue, for the first time, by providing per-thread memory bandwidth monitoring for all threads simultaneously. Similarly, some applications may over-utilize shared resources, and the capability to detect such “noisy neighbor” applications is important. In the cloud datacenter for instance it is important to understand the resource requirements of an application in order to meet targets and provide optimal performance.

Both cache and memory bandwidth can have a large impact on overall application performance in complex modern multithreaded and multitenant environments.
