Updating documents of D-release.
[kvmfornfv.git] / docs / release / userguide / pcm_utility.userguide.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2
3 .. http://creativecommons.org/licenses/by/4.0
4
5 ======================
6 PCM Utility in KVM4NFV
7 ======================
8
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
13
14 About PCM utility
15 -----------------
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
20
21 Version Features
22 -----------------
23
24 +-----------------------------+-----------------------------------------------+
25 |                             |                                               |
26 |      **Release**            |               **Features**                    |
27 |                             |                                               |
28 +=============================+===============================================+
29 |                             | - In Colorado release,we don't have memory    |
30 |       Colorado              |   bandwidth information collected through the |
31 |                             |   cyclic testcases.                           |
32 |                             |                                               |
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 +-----------------------------+-----------------------------------------------+
42
43 Implementation of pcm-memory.x:
44 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45
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.
49
50 Command:
51
52 .. code:: bash
53
54     sudo ./pcm-memory.x  [Delay]/[external_program]
55
56 Parameters
57
58 -   pcm-memory can called with either delay or external_program/application as a parameter
59
60 -   If delay is given as 5,then the output will be produced with refresh of every 5 seconds.
61
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.
63
64 **Sample Output:**
65
66  The output produced with default refresh of 1 second.
67
68 +---------------------------------------+---------------------------------------+
69 |             Socket 0                  |             Socket 1                  |
70 +=======================================+=======================================+
71 |     Memory Performance Monitoring     |     Memory Performance Monitoring     |
72 |                                       |                                       |
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    |
82 |                                       |                                       |
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 +-------------------------------------------------------------------------------+
92
93 pcm-memory.x in KVM4NFV:
94 ~~~~~~~~~~~~~~~~~~~~~~~~~~
95
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.
100
101    **Pre-requisites:**
102
103    1.Check for the processors supported by PCM .Latest pcm utility version (2.11)support Intel® Xeon® E5 v4 processor family.
104
105    2.Disabling NMI Watch Dog
106
107    3.Installing MSR registers
108
109
110 Memory Bandwidth logs for KVM4NFV can be found `here`_:
111
112 .. code:: bash
113
114     http://artifacts.opnfv.org/kvmfornfv.html
115
116 .. _here: http://artifacts.opnfv.org/kvmfornfv.html
117
118 Details of the function implemented:
119
120 In install_Pcm function, it handles the installation of pcm utility and the required prerequisites for pcm-memory.x tool to execute.
121
122 .. code:: bash
123
124    $ git clone https://github.com/opcm/pcm
125    $ cd pcm
126    $ make
127
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.
131
132 .. code:: bash
133
134   $ pcm-memory.x 60 &>/root/MBWInfo/MBWInfo_${testType}_${timeStamp}
135
136   where,
137   ${testType} = verify (or) daily
138
139 Future Scope
140 ------------
141 PCM information will be added to cyclictest of kvm4nfv in yardstick.