通过 Performance Co-Pilot 收集性能数据
在本练习中,您将使用 Performance Co-Pilot 收集和存储性能指标。
成果
您应能够安装 Performance Co-Pilot 软件包并演示工具的使用方法。
以 student
用户身份登录 workstation
虚拟机,密码为 student
。
在 workstation
虚拟机上,运行 lab perftools-copilot start 命令。该命令将确定主机 servera
是否可通过网络访问,并做好练习准备。
[student@workstation ~]$ lab perftools-copilot start
注意
当指示使用 sudo命令进行特权升级时,输入密码 student
。
-
在
workstation
虚拟机上,使用 ssh 命令以student
用户身份登录servera
。系统已配置为通过 SSH 密钥进行身份验证,因此无需密码即可登录servera
。[student@workstation ~]$ ssh student@servera [student@servera ~]$
-
在
servera
上,安装提供基本和扩展版 PCP 工具集所需的软件包。启动并启用性能指标收集器守护进程。-
安装 pcp 和 pcp-system-tools 软件包。
[student@servera ~]$ sudo yum install pcp pcp-system-tools [sudo] password for student: student ...output omitted... Complete!
-
启动并启用
pmcd
守护进程。[student@servera ~]$ sudo systemctl enable --now pmcd ...output omitted...
-
-
使用 pcp命令以及与传统工具相对比的子命令来收集信息。
-
使用 pcp命令(不含子命令参数)来汇总 Performance Co-Pilot 配置。
[student@servera ~]$ pcp Performance Co-Pilot configuration on servera.lab.example.com:platform: Linux servera.lab.example.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64hardware: 2 cpus, 4 disks, 1 node, 1829MB RAMtimezone: CDT+5services: pmcdpmcd: Version 4.3.0-1, 8 agentspmda: root pmcd proc xfs linux mmv kvm jbd2
-
使用 pcp free命令来显示内存统计信息。
[student@servera ~]$ pcp freetotal used free shared buffers cached Mem: 1872932 614300 1258632 0 2104 356424 -/+ buffers/cache: 255772 1617160 Swap 0 0 0
-
使用 pcp dstat命令来显示与
vda
的磁盘使用相关的详细信息。在后台使用 dd命令,生成对
/home/student/diskreads
文件的磁盘写入。使用 pcp dstat命令显示时间戳和磁盘统计信息,数据每秒收集一次,每批显示 10 次输出迭代。[student@servera ~]$ dd if=/dev/zero of=diskreads bs=512 \ count=2M oflag=dsync &
[student@servera ~]$ pcp dstat --nocolor -tdD vda 1 10 ----system---- --dsk/vda--time | read writ 28-06 08:10:52| 28-06 08:10:53| 0 111M 28-06 08:10:54| 0 128M 28-06 08:10:55| 0 112M 28-06 08:10:56| 0 112M 28-06 08:10:57| 0 111M 28-06 08:10:58| 0 0 28-06 08:10:59| 0 0 28-06 08:11:00|1838k 0 28-06 08:11:01| 0 10k
使用 **kill $(pidof dd)**命令来终止 dd 命令。
[student@servera ~]$ kill $(pidof dd) [student@servera ~]$
-
-
使用 pmstat命令来捕获一分钟的平均负载、交换统计信息、系统中断率和上下文切换、CPU 用户代码、系统和中断处理代码,以及空闲循环统计信息。
在循环结构中执行 **sha1sum /dev/zero &**命令的四个实例,将工作负载应用到系统中,然后立即运行 pmstat 命令。观察数值变化(约 15 次迭代)。请注意,每次执行命令所得的 PID 和统计值会有所不同。
[student@servera ~]$ for i in $(seq 1 4); do sha1sum /dev/zero & done [1] 2154 [2] 2155 [3] 2156 [4] 2157
[student@servera ~]$ pmstat @ Sun Jun 30 15:54:33 2019loadavg memory swap io system cpu1 min swpd free buff cache pi po bi bo in cs us sy id0.70 0 1229m 2104 364200 0 0 0 0 2017 307 95 5 00.96 0 1229m 2104 364200 0 0 0 0 2016 305 96 4 01.20 0 1229m 2104 364200 0 0 0 0 2014 304 95 5 01.59 0 1229m 2104 364200 0 0 0 0 2015 307 95 5 01.94 0 1229m 2104 364200 0 0 0 0 2013 306 95 5 02.11 0 1220m 2104 364220 0 0 0 0 2069 404 95 5 02.34 0 1228m 2104 364212 0 0 0 27 2099 458 95 5 02.55 0 1228m 2104 364212 0 0 0 0 2014 304 96 4 02.67 0 1228m 2104 364212 0 0 0 0 2013 303 96 4 02.78 0 1228m 2104 364212 0 0 0 0 2015 304 95 5 02.87 0 1228m 2104 364212 0 0 0 0 2013 304 95 5 02.96 0 1228m 2104 364212 0 0 0 0 2015 299 96 4 03.05 0 1228m 2104 364212 0 0 0 18 2015 308 95 5 03.12 0 1228m 2104 364212 0 0 0 0 2016 306 95 5 03.19 0 1228m 2104 364212 0 0 0 0 2014 306 95 5 0 ...output omitted...
按 Ctrl+C 组合键退出 pmstat 命令。
使用 pkill sha1sum命令来终止 sha1sum /dev/zero 命令的所有实例。
[student@servera ~]$ pkill sha1sum [2] Terminated sha1sum /dev/zero [3]- Terminated sha1sum /dev/zero [1]- Terminated sha1sum /dev/zero [4]+ Terminated sha1sum /dev/zero
-
找到跟踪可用内存的 pcp性能指标。找到后,显示其说明,然后每隔 15 秒收集 5 个样本输出。
[student@servera ~]$ pminfo | grep free mem.freemem ...output omitted...
[student@servera ~]$ pminfo -dt mem.freemem mem.freememData Type: 64-bit unsigned int InDom: PM_INDOM_NULL 0xffffffffSemantics: instant Units: Kbyte
每次执行命令所得的统计值会有所不同。
[student@servera ~]$ pmval -t 15 -s 5 mem.freemem metric: mem.freemem host: servera.lab.example.com semantics: instantaneous value units: Kbyte samples: 5 interval: 15.00 sec12618721261904126190412619041261936
-
退出
servera
。[student@servera ~]$ exit logout Connection to servera closed. [student@workstation ~]$
-
从
workstation
虚拟机,使用 pmchart 命令来启动图形用户界面。在en*
X*
接口上显示两个图表,一个用于可用内存,另一个用于出站字节。重要
网络接口名称由其总线类型和启动期间设备的检测顺序确定。您的网络接口名称将因课程平台和所用硬件而异。
在当前系统中,找到与以太网址
52:54:00:00:fa:09
相关联的接口名称(如ens06
或enp1s0
)。使用该接口名称来替换本练习中使用的en*
X*
占位符。-
在
workstation
虚拟机上,安装 pcp-gui 软件包。[student@workstation ~]$ sudo yum install pcp-gui [sudo] password for student: student ...output omitted... Complete!
-
启动和启用 Performance Co-Pilot 服务。
[student@workstation ~]$ sudo systemctl enable --now pmcd ...output omitted...
-
在后台启动 pmchart实用程序。
[student@workstation ~]$ pmchart &
-
单击 New Chart 图标。
-
在 Metrics 选项卡中,选择mem → freemem,然后单击 OK 按钮。
-
再次单击 New Chart 图标。
-
在 Metrics 选项卡中,选择network → interface → out → bytes → en*
X
*,然后单击 OK 按钮。 -
查看所选图表。尝试其他几个可用图表。
-
关闭 PCP 图表界面。
在顶部菜单栏中,单击File → Quit。
-
-
在
workstation
上的终端会话中,使用 ssh 命令以student
用户身份登录servera
。[student@workstation ~]$ ssh student@servera ...output omitted... [student@servera ~]$
-
将
sampleserver.tgz
存档从http://materials.example.com/labs/perftools-copilot/sampleserver.tgz
下载至servera
上的/home/student
目录中。提取存档。-
下载存档文件。
[student@servera ~]$ wget \ http://materials.example.com/labs/perftools-copilot/sampleserver.tgz ...output omitted...
-
提取存档。
[student@servera ~]$ tar -xf sampleserver.tgz
-
-
对 pmval存档使用
sampleserver.log/20150223.12.24.0
命令,来确定mem.freemem
性能指标报告达到80276
饱和点的确切时间。[student@servera ~]$ pmval -a sampleserver.log/20150223.12.24.0 \ mem.freemem | grep 80276 | head -n 1 12:29:42.562 80276
mem.freemem
性能指标记录首次达到80276
饱和点的时间为 12:29:42。 -
确定
sampleserver.log
存档中报告的vda
的最高磁盘读取次数。-
确定可指示磁盘读取情况的 Performance Co-Pilot 值。
[student@servera ~]$ pminfo | grep disk | grep read disk.dev.read disk.dev.blkread disk.dev.read_bytes disk.dev.read_merge disk.dev.read_rawactive disk.all.read ...output omitted...
其中一些看起来可用;使用 pminfo -dt命令确定哪个最合适。
[student@servera ~]$ pminfo -dt disk.dev.read disk.dev.read [per-disk read operations]Data Type: 64-bit unsigned int InDom: 60.1 0xf000001Semantics: counter Units: count
-
也许
disk.dev.read
性能指标中的数据可轻松确定vda
上读取最多的事务被读取的次数。[student@servera ~]$ pmval -a sampleserver.log/20150223.12.24.0 \ disk.dev.read | less metric: disk.dev.read archive: sampleserver.log/20150223.12.24.0 host: server0.example.com start: Mon Feb 23 12:24:41 2015 end: Mon Feb 23 12:54:41 2015 semantics: cumulative counter (converting to rate) units: count (converting to count / sec) samples: 1800 interval: 1.00 sec ...output omitted...vda vdb 12:25:41.562 No values available 12:25:42.562 0.0 0.0 12:25:43.562 0.0 0.0 12:25:44.562 0.0 0.0 12:25:45.562 0.0 0.0 ...output omitted...
按 q,退出 less 命令。
-
我们不太容易从输出中辨别数据,所以可使用文本处理工具筛选出您想要的数据。注意数据格式。对于
vda
,仅需要第二列中的数据来回答该问题。去除引言信息后,只查看第二列中的数据并对其进行排序。
[student@servera ~]$ pmval -a sampleserver.log/20150223.12.24.0 \ disk.dev.read | tail -n +11 | awk '{print $2}' | sort -unr | head 356.0 355.0 353.0 311.0 222.0 221.0 12.00 6.000 5.000 4.000
vda
读取最多的事务被读取了 356.0 次。
-
-
退出
servera
。[student@servera ~]$ exit [student@workstation ~]$
完成
在 workstation
虚拟机上运行 lab perftools-copilot finish 命令以完成本练习。此命令将删除练习中创建的资源。
[student@workstation ~]$ lab perftools-copilot finish
本引导式练习到此结束。