Skip to content

intel_rdt plugin

Plugin name intel_rdt
Type read
Callbacks config, init, read, shutdown
Status supported
Since 5.7
Copyright 2016–2018 Intel Corporation, Serhiy Pshyk , Mateusz Starzyk , Wojciech Andralojc , Michał Aleksiński
Configuration collectd.conf(5)

The intel_rdt plugin collects information provided by monitoring features of Intel Resource Director Technology (Intel(R) RDT) like Cache Monitoring Technology (CMT), Memory Bandwidth Monitoring (MBM), Cache Allocation Technology (CAT) and Code and Data Prioritization (CDP) Technology provide the hardware framework to monitor and control the utilization of shared resources, like last level cache, memory bandwidth. These Technologies comprise Intel’s Resource Director Technology (RDT). As multithreaded and multicore platform architectures emerge, running workloads in single-threaded, multithreaded, or complex virtual machine environment, the last level cache and memory bandwidth are key resources to manage. Intel introduces CMT, MBM, CAT and CDP to manage these various workloads across shared resources. 


Name


Type


Type Instance


Description


Comment


LLC


bytes


llc


last level cache occupancy (CMT)


Existing type


MBL


memory_bandwidth


local


the bandwidth of accessing memory associated with the local socket (MBM)


Existing type


MBR


memory_bandwidth


remote


the bandwidth of accessing the remote socket (MBM)


Existing type


IPC


ipc



instructions per clock


New type introduced in types.db

For a full description of available options please refer to the collectd.conf(5) manual page.

Synopsis

 <Plugin "intel_rdt">
   Cores "0-2" "3,4,6" "8-10,15"
 </Plugin>

Parameters


Name


Description


Comment


Interval


The interval within which to retrieve statistics on monitored events in seconds


Interval option is supported by collectd and is defined in block. No additional functionality should be developed in intel_rdt plugin to support this option.


Cores


Core groups definition. Monitored metrics are reported as aggregated statistics per group.


The field is represented as list of strings with core group values. Each string represents a list of cores in a group. Allowed formats are: “0,1,2,3” “0-10,20-18” “1,3,5-8,10,0x10-12”.

If an empty string is provided as value for this field default cores configuration should be applied - a separate group for each core.

Metrics


Metric/Feature/Input


Name


Date Type


Format Example


Description


Dependencies


Limitations


Comments


Metric


Memory Bandwidth on Local NUMA Node


Bytes/Second


3934325


Memory bandwidth utilization by the relevant CPU core on the local NUMA memory channel


PQOS ToolSet


Does not provide the value per process basis due to lack of resctrl fs support


Dependent on PQOS toolset to read the metric value


Metric


Memory Bandwidth on Remote NUMA Node


Bytes/Second


3934325


Memory bandwidth utilization by the relevant CPU core on the remote NUMA memory channel


PQOS ToolSet


Does not provide the value per process basis due to lack of resctrl fs support


Dependent on PQOS toolset to read the metric value


Metric


Total Memory Bandwidth


Bytes/Second


3934325


Total memory bandwidth utilized by a CPU core on local and remote NUMA memory channels


PQOS ToolSet


Does not provide the value per process basis due to lack of resctrl fs support


Not part of the Collectd plugin


Metric


L3 Cache Occupancy


Bytes


45345434


Total Last Level Cache occupancy by a CPU core


PQOS ToolSet


Does not provide the value per process basis due to lack of resctrl fs support


Dependent on PQOS toolset to read the metric value


Metric


Instructions Per Cycle


Integer


23734


Total instructions per cycle executed by a CPU core


PQOS ToolSet


None


Dependent on PQOS toolset to read the metric value


Input


Cores


Integer Array


[0-12] or [1,2,3]


The list of CPU core(s) to be provided as input by the user for which the corresponding metrics are required


None


None


Configuration input in the plugin .conf file


Input


Configuration Interval


Integer


1 or 10


The interval in seconds at which the metrics need to be collectd


None


None


Configuration input in the plugin .conf file


Metric


Memory Bandwidth of the process on Local NUMA Node


Bytes


3934325


Memory bandwidth utilization by the relevant process on the local NUMA memory channel


resctrl fs & kernel 4.14


TBD


Still to create Collectd PR


Metric


Memory Bandwidth of the process on Remote NUMA Node


Bytes


3934325


Memory bandwidth utilization by the relevant process on the remote NUMA memory channel


resctrl fs & kernel 4.14


TBD


Still to create Collectd PR


Metric


Total Memory Bandwidth of the process


Bytes


3934325


Total memory bandwidth utilized by a process on local and remote NUMA memory channels


resctrl fs & kernel 4.14


TBD


Still to create Collectd PR


Metric


L3 Cache Occupancy of the process


Bytes


45345434


Total Last Level Cache occupancy by a process


resctrl fs & kernel 4.14


TBD


Still to create Collectd PR


Metric


Instructions Per Cycle of the process


Integer


23734


Total instructions per cycle executed by a process


resctrl fs & kernel 4.14


TBD


Still to create Collectd PR


Input


Process List


Array


[qemu, pmd]


List of processes for which metrics are to be collected


resctrl fs & kernel 4.14


TBD


Still to create Collectd PR

Example graph

Dependencies

See also

Configuration

Configuration options · from collectd.conf(5)

See this section in the full configuration reference

The intel_rdt plugin collects information provided by monitoring features of Intel Resource Director Technology (Intel(R) RDT) like Cache Monitoring Technology (CMT), Memory Bandwidth Monitoring (MBM). These features provide information about utilization of shared resources. CMT monitors last level cache occupancy (LLC). MBM supports two types of events reporting local and remote memory bandwidth. Local memory bandwidth (MBL) reports the bandwidth of accessing memory associated with the local socket. Remote memory bandwidth (MBR) reports the bandwidth of accessing the remote socket. Also this technology allows to monitor instructions per clock (IPC). Monitor events are hardware dependant. Monitoring capabilities are detected on plugin initialization and only supported events are monitored.

Note: intel_rdt plugin is using model-specific registers (MSRs), which require an additional capability to be enabled if collectd is run as a service. Please refer to contrib/systemd.collectd.service file for more details.

Synopsis:

<Plugin "intel_rdt">
  Cores "0-2" "3,4,6" "8-10,15"
  Processes "sshd,qemu-system-x86" "bash"
</Plugin>

Options:

Interval seconds
The interval within which to retrieve statistics on monitored events in seconds. For milliseconds divide the time by 1000 for example if the desired interval is 50ms, set interval to 0.05. Due to limited capacity of counters it is not recommended to set interval higher than 1 sec.
Cores cores groups

Monitoring of the events can be configured for group of cores (aggregated statistics). This field defines groups of cores on which to monitor supported events. The field is represented as list of strings with core group values. Each string represents a list of cores in a group. Allowed formats are: 0,1,2,3 0-10,20-18 1,3,5-8,10,0x10-12

If an empty string is provided as value for this field default cores configuration is applied - a separate group is created for each core.

Processes process names groups
Monitoring of the events can be configured for group of processes (aggregated statistics). This field defines groups of processes on which to monitor supported events. The field is represented as list of strings with process names group values. Each string represents a list of processes in a group. Allowed format is: sshd,bash,qemu

Note: By default global interval is used to retrieve statistics on monitored events. To configure a plugin specific interval use Interval option of the intel_rdt <LoadPlugin> block. For milliseconds divide the time by 1000 for example if the desired interval is 50ms, set interval to 0.05. Due to limited capacity of counters it is not recommended to set interval higher than 1 sec.