RH442 开放研究实验: 选择性能监控工具

开放研究实验: 选择性能监控工具

任务执行清单

在本实验中,您将使用各种系统监控工具来观察系统表现。

成果

您应能够:

  • 安装和配置 sysstat 软件包,以生成系统活动报告。
  • 安装和配置 Performance Co-Pilot,以采集原始数据来监控本地和远程系统。
  • 使用 Performance Co-Pilot 图表显示特定系统存档日志中的性能指标。

student用户的身份登录 workstation 虚拟机,密码为 student

workstation上,运行 lab perftools-review start 命令。该命令将确定主机 serverb是否可通过网络访问,并将本次实验练习所需的文件文件到主机上。

[student@workstation ~]$ lab perftools-review start
  1. workstation虚拟机上,配置系统来运行Performance Co-Pilot 图表,从而监控本地和远程性能指标。

    1. 安装 pcp-gui 软件包。

      [student@workstation ~]$ sudo yum install pcp-gui
      
    2. 启动并启用 Performance Co-Pilot 指标收集器守护进程。

      [student@workstation ~]$ sudo systemctl enable --now pmcd
      
  2. workstation上,使用 sshstudent 用户的身份登录 serverb。升级特权至 root 用户帐户。

    1. student用户身份登录 serverb

      [student@workstation ~]$ ssh student@serverb
      [student@serverb ~]$ sudo -i
      [root@serverb ~]# 
      
  3. serverb上,安装包含名为 sysstat-collect.timersysstat-collect.service 的两个 systemd 单元的软件包。修改定时器单元配置文件,使其每分钟收集一次系统活动数据。

    1. 安装 sysstat 软件包。

      [root@serverb ~]# yum install sysstat
      ...output omitted...
      
    2. /usr/lib/systemd/system/sysstat-collect.timer复制到 /etc/systemd/system/sysstat-collect.timer

      [root@serverb ~]# cp /usr/lib/systemd/system/sysstat-collect.timer \
      /etc/systemd/system/sysstat-collect.timer
      
    3. 编辑 /etc/systemd/system/sysstat-collect.timer,让定时器单元每分钟运行一次。

      [root@serverb ~]# vim /etc/systemd/system/sysstat-collect.timer
      ...output omitted...
      #        Activates activity collector once every minute
      
      [Unit]
      Description=Run system activity accounting tool once every minute
      
      [Timer]
      OnCalendar=*:00/01
      
      [Install]
      WantedBy=sysstat.service
      
    4. 使用 systemctl daemon-reload命令,确保 systemd 知道这些更改。

      [root@serverb ~]# systemctl daemon-reload
      
    5. 使用 systemctl命令,激活 sysstat-collect.timer 定时器单元。

      [root@serverb ~]# systemctl enable --now sysstat-collect.timer
      
  4. serverb上,安装 Performance Co-Pilot 软件包,以支持基本系统级别性能监控和提供附加系统监控工具的 PCP 模块。启用并启动性能指标收集器守护进程。

    1. 安装 pcp 和 pcp-system-tools 软件包。

      [root@serverb ~]# yum install pcp pcp-system-tools
      ...output omitted...
      Complete!
      
    2. 启动并启用 Performance Co-Pilot 指标收集器守护进程。

      [root@serverb ~]# systemctl enable --now pmcd
      ...output omitted...
      
  5. 配置对 serverb上运行的性能指标收集器守护进程的远程访问权限。

    1. 使用 firewall-cmd命令来添加 pmcd 服务。

      [root@serverb ~]# firewall-cmd --permanent --add-service="pmcd"
      success
      
    2. 重新加载防火墙配置。

      [root@serverb ~]# firewall-cmd --reload
      success
      
    3. 验证防火墙配置。

      [root@serverb ~]# firewall-cmd --list-all
      public (active)
        target: default
        icmp-block-inversion: no
        interfaces: enp1s0
        sources:
        services: cockpit dhcpv6-client pmcd ssh
        ports:
        protocols:
        masquerade: no
        forward-ports:
        source-ports:
        icmp-blocks:
        rich rules:
      
  6. serverb上,采集来自 Performance Co-Pilot 的 mem.util.used 指标的 10 个样本。将输出重新定向至 /tmp/mem-util-used-grade.data

    [root@serverb ~]# pmval -s 10 mem.util.used > /tmp/mem-util-used-grade.data
    
  7. serverb上,从 http://materials.example.com/labs/perftools-review/sampleserver.tgz 中下载 sampleserver.tgz Performance Co-Pilot 日志存档。确定所经历的一分钟最高平均负载值,并将该值保存到 /tmp/high-1min-load.data。完成后,确定首次达到该一分钟平均负载值的时间,并将时间值保存到 /tmp/time-1min-load.data

    1. 下载示例系统的 Performance Co-Pilot 日志数据。

      [root@serverb ~]# wget \
      http://materials.example.com/labs/perftools-review/sampleserver.tgz
      
    2. 解压存档以访问 Performance Co-Pilot 日志数据。

      [root@serverb ~]# tar -xf sampleserver.tgz
      
    3. 确定将提供一分钟平均负载的参数。

      [root@serverb ~]# pminfo | grep load
      ...output omitted...
      kernel.all.load
      ...output omitted...
      
      [root@serverb ~]# pminfo -t kernel.all.load
      kernel.all.load [1, 5 and 15 minute load average]
      
    4. 确定所经历的一分钟最高平均负载值。将此值重新定向至 /tmp/high-1min-load.data

      [root@serverb ~]# pmval -a sampleserver.log/20150223.12.24.0 \
      kernel.all.load | tail -n +11 | \
      awk '{print $2}' | sort -rn | \
      head -n 1 > /tmp/high-1min-load.data
      
    5. 验证您的内容是否匹配以下内容:

      [root@serverb ~]# cat /tmp/high-1min-load.data
      19.12
      
    6. 确定一分钟平均负载值首次达到 19.12 的时间。将此值重新定向至 /tmp/time-1min-load.data。在不同时区的系统上显示时间值时,您必须知道存档所在时区,以确保一致性。

      [root@serverb ~]# pmdumplog -L sampleserver.log/20150223.12.24.0
      Log Label (Log Format Version 2)
      Performance metrics from host server0.example.com
          commencing Mon Feb 23 11:24:41.562205 2015
          ending     Mon Feb 23 11:54:41.500123 2015
      Archive timezone: EST+5
      PID for pmlogger: 9217
      
      [root@serverb ~]# pmval -a sampleserver.log/20150223.12.24.0 \
      -Z EST+5 kernel.all.load | grep 19\.12 | \
      head -n 1 > /tmp/time-1min-load.data
      
    7. 验证您的内容是否匹配以下内容:

      [root@serverb ~]# cat /tmp/time-1min-load.data
      12:32:41.562      19.12          5.060         1.860
      
  8. serverb上,从 http://materials.example.com/labs/perftools-review/sar-server.data 中下载预先存在的 sar 存档文件。确定 enp1s0 接口每秒接收的网络数据包的最高数量,如 ~/sar-server.data 中所记录。按照 HH:MM:SS Packets 格式在 /tmp/net-grade.data 文件中记录时间和数据包的数量。

    1. http://materials.example.com/labs/perftools-review/sar-server.data下载到 /home/student

      [root@serverb ~]# wget \
      http://materials.example.com/labs/perftools-review/sar-server.data
      ...output omitted...
      
    2. 使用 sar命令来读取存档文件中的前 10 行,以确定格式。

      [root@serverb ~]# sar -n DEV -f sar-server.data | head
      Linux 4.18.0-80.el8.x86_64 (serverb.lab.example.com) 	07/04/2019 	_x86_64_	(2 CPU)
      
      00:04:26     LINUX RESTART	(2 CPU)
      
      12:06:01 AM   IFACE  rxpck/s  txpck/s ... %ifutil
      12:07:01 AM      lo     0.00     0.00        0.00
      12:07:01 AM  enp1s0     1.13     0.50        0.00
      12:08:01 AM      lo     0.00     0.00        0.00
      12:08:01 AM  enp1s0     0.62     0.12        0.00
      12:09:01 AM      lo     0.00     0.00        0.00
      
    3. 使用以下筛选条件来解析时间和已接收的数据包值。

      • sar -n DEV -f sar-server.data从预先存在的 tar 文件中报告网络统计信息。
      • **grep ‘[A].*enp1s0’**在删除了不以时间戳开头的各行(如以单词 Average 开头的各行)后,仅会隔离出与 enp1s0 相关联的各行。
      • awk ‘{print $1, $4}’ | sort -rnk 2会打印由 grep 命令生成的输出结果中的第一列和第三列内容,并按降序对第三列数据进行排序。
      • head -n+1 > /tmp/net-grade.data会将已排序的第一列数据重新定向至 /tmp/net-grade.data 文件。
      [root@serverb ~]# sar -n DEV -f sar-server.data | \
      grep '^[^A].*enp1s0' | \
      awk '{print $1, $4}' | sort -rnk 2 | \
      head -n+1 > /tmp/net-grade.data
      
    4. 验证您的结果是否匹配以下内容:

      [root@serverb ~]# cat /tmp/net-grade.data
      01:08:01 202.23
      
    5. 退出 serverb

      [root@serverb ~]# exit
      [student@serverb ~]$ exit
      [student@workstation ~]$ 
      
  9. workstation虚拟机上,使用 Performance Co-Pilot 图表在远程主机 serverb 上创建视图,其中包括以下性能指标:mem.util.useddisk.all.aveqproc.nprocs。将该视图命名为 442labview

    1. 启动 pmchart接口以专门连接至 serverb 远程主机。

      [student@workstation ~]$ pmchart -h serverb &
      
    2. 添加三个性能指标。

      单击 New Chart 按钮。在 Metrics 选项卡中,选择mem → util → used。单击 OK 按钮。

      单击 New Chart 按钮。在 Metrics 选项卡中,选择disk → all → aveq。单击 OK 按钮。

      单击 New Chart 按钮。在 Metrics 选项卡中,选择proc → nprocs。单击 OK 按钮。

    3. 将您的视图另存为 442labview

      打开 File 菜单,然后选择 Save View…。

      将 Path: 字段更改为 /home/student

      在 Filename: 字段中,输入 442labview

      单击 Save 按钮。

    4. 退出 PCP 图表的图形界面。

      打开 File 菜单,然后选择 Quit。

评估

workstation上,运行 lab perftools-review grade 命令来确认是否成功完成本练习。

[student@workstation ~]$ lab perftools-review grade

完成

workstation上运行 lab perftools-review finish 命令以完成本练习。

[student@workstation ~]$ lab perftools-review finish

本实验到此结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/769113.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java同步包装器

通过 Collections.synchronizedList() 方法将一个普通的 ArrayList 包装成了线程安全的 List&#xff1a; import java.util.*;public class SynchronizedWrapperExample {public static void main(String[] args) {// 创建一个非线程安全的 ArrayListList<String> list…

python gdal 压缩栅格数据

1 压缩方法LZW 使用 LZW&#xff08;Lempel-Ziv-Welch&#xff09;&#xff0c;主要对图像数据压缩&#xff0c;可逆 2 代码 函数gdal_translate()&#xff1a;转换栅格的不同格式 我们使用的数据是GTiff格式的数据 GTiff – GeoTIFF File Format — GDAL documentation 参…

MySQL安装与环境配置

1.打开安装程序 2.默认配置&#xff0c;如下二三图 3.配置密码 4.等待安装完毕 5.检查 6.配置环境变量 7.从控制台登录检测

STM32F1+HAL库+FreeTOTS学习4——任务挂起与恢复

STM32F1HAL库FreeTOTS学习4——任务挂起与恢复 任务挂起和恢复的API介绍代码实现 上一期我们学习了FreeRTOS中任务创建的两种方法&#xff0c;这一期我们学习任务的挂起和恢复。 任务挂起和恢复的API介绍 在 &#xff1a;STM32F1HAL库FreeTOTS学习1——FreeRTOS入门 的学习中&…

苹果电脑虚拟机运行Windows Mac环境安装Win PD19虚拟机 parallels desktop19虚拟机安装教程免费密钥激活

在如今多元的数字时代&#xff0c;我们经常需要在不同的操作系统环境下进行工作和学习。而对于 Mac 用户来说&#xff0c;有时候需要在自己的电脑上安装 Windows 操作系统&#xff0c;以体验更多软件及功能&#xff0c;而在 Mac 安装 Windows 虚拟机是常用的一种操作。下面就来…

Python28-5 k-means算法

k-means 算法介绍 k-means 算法是一种经典的聚类算法&#xff0c;其目的是将数据集分成 ( k ) 个不同的簇&#xff0c;每个簇内的数据点尽可能接近。算法的基本思想是通过反复迭代优化簇中心的位置&#xff0c;使得每个簇内的点与簇中心的距离之和最小。k-means 算法的具体步骤…

【FFmpeg】avformat_find_stream_info函数

【FFmpeg】avformat_find_stream_info 1.avformat_find_stream_info1.1 初始化解析器&#xff08;av_parser_init&#xff09;1.2 查找探测解码器&#xff08;find_probe_decoder&#xff09;1.3 尝试打开解码器&#xff08;avcodec_open2&#xff09;1.4 读取帧&#xff08;re…

嵌入式Linux之Uboot简介和移植

uboot简介 uboot 的全称是 Universal Boot Loader&#xff0c;uboot 是一个遵循 GPL 协议的开源软件&#xff0c;uboot是一个裸机代码&#xff0c;可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、USB 等高级功能。 也就是说&#xff0c;可以在没有系统的情况…

创建kobject

1、kobject介绍 kobject的全称是kernel object&#xff0c;即内核对象。每一个kobject都会对应系统/sys/下的一个目录。 2、相关结构体和api介绍 2.1 struct kobject // include/linux/kobject.h 2.2 kobject_create_and_add kobject_create_and_addkobject_createkobj…

开源自动化热键映射工具autohotkey十大用法及精选脚本

AutoHotkey&#xff08;AHK&#xff09;是一款功能强大的热键脚本语言工具&#xff0c;它允许用户通过编写脚本来自动化键盘、鼠标等设备的操作&#xff0c;从而极大地提高工作效率。以下是AutoHotkey的十大经典用法&#xff0c;这些用法不仅解放了用户的双手&#xff0c;还展示…

字节码编程ASM之插桩方法调用记录

写在前面 源码 。 正式开始之前&#xff0c;先分享一个让人”悲伤“的真实的故事。 那是一个风和日丽的周六的下午&#xff0c;俺正在开开心心的打着羽毛球&#xff0c;突然接到了来自于最不想联系的那个人&#xff08;没错&#xff0c;这个人就是我的领导&#xff01;&#x…

QT Creator生成uml类图

先说方法&#xff0c;使用Doxygen工具&#xff0c;笔者用的虚拟机linux系统下的qt5.7&#xff0c;没找到自带的uml生成类的工具。 1、Doxygen 安装 在 Ubuntu 系统中&#xff0c;执行下面命令安装 doxygen 和 graphviz 软件包。 sudo apt install graphviz # 用于生成代码…

等保2.0 实施方案之信息软件验证要求

一、等保2.0背景及意义 随着信息技术的快速发展和网络安全威胁的不断演变&#xff0c;网络安全已成为国家安全、社会稳定和经济发展的重要保障。等保2.0&#xff08;即《信息安全技术 网络安全等级保护基本要求》2.0版本&#xff09;作为网络安全等级保护制度的最新标准&#x…

Gradle学习-5 发布二进制插件

注&#xff1a;以下示例基于Gradle8.0 1、发布插件 复制一分 buildSrc&#xff0c;执行命令行&#xff0c;生成一个新目录 leon-gradle-plugin cp -rf buildSrc leon-gradle-plugin在 leon-gradle-plugin 目录下的 build.gradle 中引入maven plugins{// 引用 Groovy 插件&…

【热部署】✈️Springboot 项目的热部署实现方式

目录 &#x1f378;前言 &#x1f37b;一、热部署和手动重启 &#x1f37a;二、热部署的实现 2.1 手动启动热部署 2.2 自动检测热部署 2.3 关闭热部署 &#x1f49e;️三、章末 &#x1f378;前言 小伙伴们大家好&#xff0c;书接上文&#xff0c;通过Springboot 中的 actu…

解析Kotlin中扩展函数与扩展属性【笔记摘要】

1.扩展函数 1.1 作用域&#xff1a;扩展函数写的位置不同&#xff0c;作用域就也不同 扩展函数可以写成顶层函数&#xff08;Top-level Function&#xff09;&#xff0c;此时它只属于它所在的 package。这样你就能在任何类里使用它&#xff1a; package com.rengwuxianfun …

zabbix“专家坐诊”第244期问答

问题一 Q&#xff1a;请教一下&#xff0c;我的zabbix6.0配置的基于snmptrap上报的日志提取关键字推送告警&#xff0c;正则表达式能否帮忙看看怎么弄&#xff1f;我这配置的提示一直不正确&#xff1f; A&#xff1a;具体看一下这里的信息。 Q&#xff1a;这个我是直接复制的…

如何计算弧线弹道的落地位置

1&#xff09;如何计算弧线弹道的落地位置 2&#xff09;Unity 2021 IL2CPP下使用Protobuf-net序列化报异常 3&#xff09;编译问题&#xff0c;用Mono可以&#xff0c;但用IL2CPP就报错 4&#xff09;Wwise的Bank在安卓上LoadBank之后&#xff0c;播放没有声音 这是第393篇UWA…

ssm旅游信息分享网站-计算机毕业设计源码92194

目录 1 绪论 1.1 研究背景 1.2研究意义 1.3论文结构与章节安排 2 旅游信息分享网站分析 2.1 可行性分析 2.2 系统功能分析 2.3 系统用例分析 2.4 系统流程分析 2.5本章小结 3 旅游信息分享网站总体设计 3.1 系统功能模块设计 3.2 数据库设计 3.4本章小结 4 旅游信…

从全连接到卷积

一、全连接到卷积 1、卷积具有两个原则&#xff1a; 平移不变性&#xff1a;无论作用在哪个部分&#xff0c;它都要有相同的作用&#xff0c;而不会随着位置的改变而改变 局部性&#xff1a;卷积核作用处&#xff0c;作用域应该是核作用点的周围一小部分而不作用于更大的部分 …