1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
3 .. http://creativecommons.org/licenses/by/4.0
9 Collecting Memory Bandwidth Information using PCM utility
10 ---------------------------------------------------------
11 This chapter includes how the PCM utility is used in kvm4nfv
12 to collect memory bandwidth information
16 The Intel® Performance Counter Monitor provides sample C++ routines and utilities to estimate the
17 internal resource utilization of the latest Intel® Xeon® and Core™ processors and gain a significant
18 performance boost.In Intel PCM toolset,there is a pcm-memory.x tool which is used for observing the
19 memory traffic intensity
24 +-----------------------------+-----------------------------------------------+
26 | **Release** | **Features** |
28 +=============================+===============================================+
29 | | - In Colorado release,we don't have memory |
30 | Colorado | bandwidth information collected through the |
31 | | cyclic testcases. |
33 +-----------------------------+-----------------------------------------------+
34 | | - pcm-memory.x will be executed before the |
35 | Danube | execution of every testcase |
36 | | - pcm-memory.x provides the memory bandwidth |
37 | | data throughout out the testcases |
38 | | - used for all test-types (stress/idle) |
39 | | - Generated memory bandwidth logs are |
40 | | published to the KVMFORFNV artifacts |
41 +-----------------------------+-----------------------------------------------+
43 Implementation of pcm-memory.x:
44 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 The tool measures the memory bandwidth observed for every channel reporting seperate throughput
47 for reads from memory and writes to the memory. pcm-memory.x tool tends to report values slightly
48 higher than the application's own measurement.
54 sudo ./pcm-memory.x [Delay]/[external_program]
58 - pcm-memory can called with either delay or external_program/application as a parameter
60 - If delay is given as 5,then the output will be produced with refresh of every 5 seconds.
62 - If external_program is script/application,then the output will produced after the execution of the application or the script passed as a parameter.
66 The output produced with default refresh of 1 second.
68 +---------------------------------------+---------------------------------------+
69 | Socket 0 | Socket 1 |
70 +=======================================+=======================================+
71 | Memory Performance Monitoring | Memory Performance Monitoring |
73 +---------------------------------------+---------------------------------------+
74 | Mem Ch 0: Reads (MB/s): 6870.81 | Mem Ch 0: Reads (MB/s): 7406.36 |
75 | Writes(MB/s): 1805.03 | Writes(MB/s): 1951.25 |
76 | Mem Ch 1: Reads (MB/s): 6873.91 | Mem Ch 1: Reads (MB/s): 7411.11 |
77 | Writes(MB/s): 1810.86 | Writes(MB/s): 1957.73 |
78 | Mem Ch 2: Reads (MB/s): 6866.77 | Mem Ch 2: Reads (MB/s): 7403.39 |
79 | Writes(MB/s): 1804.38 | Writes(MB/s): 1951.42 |
80 | Mem Ch 3: Reads (MB/s): 6867.47 | Mem Ch 3: Reads (MB/s): 7403.66 |
81 | Writes(MB/s): 1805.53 | Writes(MB/s): 1950.95 |
83 | NODE0 Mem Read (MB/s) : 27478.96 | NODE1 Mem Read (MB/s) : 29624.51 |
84 | NODE0 Mem Write (MB/s): 7225.79 | NODE1 Mem Write (MB/s): 7811.36 |
85 | NODE0 P. Write (T/s) : 214810 | NODE1 P. Write (T/s) : 238294 |
86 | NODE0 Memory (MB/s) : 34704.75 | NODE1 Memory (MB/s) : 37435.87 |
87 +---------------------------------------+---------------------------------------+
88 | - System Read Throughput(MB/s): 57103.47 |
89 | - System Write Throughput(MB/s): 15037.15 |
90 | - System Memory Throughput(MB/s): 72140.62 |
91 +-------------------------------------------------------------------------------+
93 pcm-memory.x in KVM4NFV:
94 ~~~~~~~~~~~~~~~~~~~~~~~~~~
96 pcm-memory is a part of KVM4NFV in D release.pcm-memory.x will be executed with delay of 60 seconds
97 before starting every testcase to monitor the memory traffic intensity which was handled in
98 collect_MBWInfo function .The memory bandwidth information will be collected into the logs through
99 the testcase updating every 60 seconds.
103 1.Check for the processors supported by PCM .Latest pcm utility version (2.11)support Intel® Xeon® E5 v4 processor family.
105 2.Disabling NMI Watch Dog
107 3.Installing MSR registers
110 Memory Bandwidth logs for KVM4NFV can be found `here`_:
114 http://artifacts.opnfv.org/kvmfornfv.html
116 .. _here: http://artifacts.opnfv.org/kvmfornfv.html
118 Details of the function implemented:
120 In install_Pcm function, it handles the installation of pcm utility and the required prerequisites for pcm-memory.x tool to execute.
124 $ git clone https://github.com/opcm/pcm
128 In collect_MBWInfo Function,the below command is executed on the node which was collected to the logs
129 with the timestamp and testType.The function will be called at the begining of each testcase and
130 signal will be passed to terminate the pcm-memory process which was executing throughout the cyclic testcase.
134 $ pcm-memory.x 60 &>/root/MBWInfo/MBWInfo_${testType}_${timeStamp}
137 ${testType} = verify (or) daily
141 PCM information will be added to cyclictest of kvm4nfv in yardstick.