Linxu下性能指标采集工具之nmon工具的使用

前言

近期在测试JefLogTail,由于JefLogTail使用的是轮询的方式来监听文件夹,所以对cpu的消耗可能会高一些,所以在测试的时候着重关注CPU,Linux下查看CPU信息一般采用top命令来实时观察,但是这种对于只是通过观察数据的变化来评估cpu的实时情况显然不太科学。如果想要通过图标的形式来表现则需要借助一些外部工具,今天就来讲解一下nmon工具的使用。

nmon工具下载

官方下载地址:https://nmon.sourceforge.net/pmwiki.php?n=Site.Download
需要根据自己的Linux主机版本来下载对应的版本,笔者这里下载的是nmon16m_helpsystems.tar.gz,下载完成后在linux主机上解压后,会出现很多版本,选择对应的版本运行即可。
笔者的主机配置为:

Linux version 3.10.0-514.el7.x86_64 (mockbuild@x86-039.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Wed Oct 19 11:24:13 EDT 2016

nmon对应笔者主机的版本为:

nmon_x86_64_rhel7

执行./nmon_x86_64_rhel7,如果成功则会展示如下界面:

image.png
使用示例:
根据提示输入C,展示的为CPU的各项指标
输入M,展示的为内存的各项指标
输入d,展示的为磁盘的各项指标等等

nmon使用扩展

nmon不仅可以实时监听,还提供命令监听,并写入到文件,最后通过excel来展示图形化的界面。

使用如下命令可监听系统的各项指标。并汇总文件中。

./nmon_x86_64_rhel7 -ft -s 1000 -c 60 -m /test_path

命令参数说明:
-f   监控结果以文件形式输出,默认机器名+日期.nmon格式 (YYYYMMDD_HHMM.nmon)
-F   指定输出的文件名,比如test.nmon
-s   指的是采样的频率,单位为毫秒
-c   指的是采样的次数,即以上面的采样频率采集多少次
-m   指定生成的文件目录
上述命令的意思为:每1秒钟采集一次,共采集60秒,并且将生成的文件保存到根目录下的test_path文件夹下。执行完该命令后,在/test_path下就会生成一个名为:localhost_230426_1359.nmon的文件。

.nmon文件解析

文件解析需要下载官方的解析工具,这个工具不需要安装,只是一个excel宏命令文件,所以可以放心下载。
地址:https://nmon.sourceforge.net/pmwiki.php?n=Site.Download

image.png

下载完成后,解压打开nmon analyser v66.xlsm文件,点击Analyze nmon data按钮,如果此时报错,提示类似“无法运行xxxx宏可能是因为该宏在此工作簿中不可用,或者所有宏都被禁用”,需要配置一下excel宏,配置路径:文件=》选项=》信任中心=》信任中心设置=》宏设置,勾选启用所有宏。设置完毕重启即可。之后按照提示傻瓜式操作。

image.png

解析之后的图形化excel

image.png

为了方便使用,我还写了启动脚本供读者参考:

# 启动指令
monitor_system_start () {

  # 频率默认为1000ms采集一次
  frequency=1000
  # 采样次数默认为60次
  count=60
  # 默认保存路径
  save_path='/home/xxx/tools/nmonData/'

  if [ "$1" != "" ]; then
    frequency=$1
  fi

  if [ "$2" != "" ]; then
    count=$2
  fi

  if [ "$3" != "" ]; then
    save_path=$3
  fi

  commond='/home/xxx/tools/nmonData/tools/nmon/nmon_x86_64_rhel7 -ft -s '$frequency' -c '$count' -m '$save_path
  $commond
  echo "start success"
}

# 强制停止指令
monitor_system_stop () {
  commond="ps -ef | grep nmon_x86_64_rhel7 | grep -nv 'grep' | awk -F ' *' '{print $"2"}'"
  pid=`eval $commond`
  echo $pid
  kill -9 $pid
  echo "stop success PID="$pid
}

command_array=("monsysstop" "monsysstart")
if [ $# -lt 1 ]; then
    echo "请明确指令:"
    length=${#command_array[@]}
    for ((i=0;i<$length; i++));
        do
        echo ${command_array[$i]}
        done
    exit
else
  if [[ $1 == 'monsysstart' || $1 == '-monsysstart' || $1 == "MONSYSSTART" ]]
   then
    monitor_system_start $2 $3 $4
  elif [[ $1 == 'monsysstop' || $1 == '-monsysstop' || $1 == "MONSYSSTOP" ]]
   then
    monitor_system_stop

使用方式:
1、默认启动

sh xxx.sh monsysstart

2、自定义参数启动

sh xxx.sh monsysstart 1000 60 /test_path

3、强行停止(正常执行完指定的采集次数后会自动停止,一般不需要强行停止):

sh xxx.sh monsysstop

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

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

相关文章

Anaconda,CUDA注意事项

2. 呜呜呜&#xff01;&#xff01;&#xff01;用别人的环境&#xff0c;如果他是非GPU版本的TF&#xff0c;你把非GPU版本的TF卸载后安装GPU版本的TF他也装不上。。。会默认给你装非GPU版本的TF&#xff01;&#xff01;&#xff01;大坑比&#xff01;&#xff01;&#xf…

streamlit (python构建web可视化框架)笔记

文章目录 一、安装使用streamlit二、streamlit使用1.展示和数据样式2.dataframe()生成交互表和table()方法生成静态表3.绘制折线图4.绘制地图5.一些组件slider()滑动条 checkbox()确认框 selectbox()选择器6.侧边栏7.布局分列8.多页 三、Steamlit可视化简单应用--冒泡排序可视化…

科学防雷接地和雷电防护方案

说到防雷&#xff0c;可能不少人首先会想到避雷针&#xff0c;而“避雷针”这一概念&#xff0c;很容易让大家对防雷的概念造成误解。 误解1: 避雷针是用来“避雷”的。 其实&#xff0c;避雷针的学名叫“接闪器”&#xff0c;不是用来“避开雷击”的&#xff0c;而是用来“迎…

传统机器学习(七)支持向量机(2)sklearn中的svm

传统机器学习(七)支持向量机(2)sklearn中的svm 2 sklearn中的svm 2.1 LinearSVC及SVC参数详解 2.1.1 SVC参数 class sklearn.svm.SVC(*,C1.0, kernelrbf, degree3, gammascale, coef00.0, shrinkingTrue, probabilityFalse, tol0.001, cache_size200, class_weightNone, ve…

为什么企业要做大规模敏捷?

背景 软件工程里一个重要的指标就是“可用的软件”&#xff0c;敏捷宣言里也同样告诉我们“工作的软件高于详尽的文档”&#xff0c;那“可用的软件”、“工作的软件”意味着什么呢&#xff1f;在我的理解里&#xff0c;可以经历用户 “千锤百炼”的软件就是一个“可用的软件”…

这些vue基本语法,你掌握了吗

文章目录 一、 vue 项目重点概念介绍1. 单页面应用程序2. 单文件组件3.数据驱动视图 二、 vue 基本结构1、template2、script3、style 三、 vue 常用指令介绍1、内容渲染指令&#xff08;1&#xff09;插值表达式 {{xxx}} —常用方式&#xff08;2&#xff09;v-text&#xff0…

912. 排序数组

1.题目&#xff1a; 2.我的代码&#xff1a; C语言&#xff1a; /*** Note: The returned array must be malloced, assume caller calls free().*/ int* sortArray(int* nums, int numsSize, int* returnSize) {//希尔排序int gap numsSize;//多次预排while (gap > 1) {/…

Ansys Zemax | 如何模拟双折射偏振器件

这篇文章介绍了什么是双折射现象、如何在OpticStudio中模拟双折射 (birefringence)、如何模拟双晶体的双折射偏振器以及如何计算偏振器的消光比。&#xff08;联系我们获取文章附件&#xff09; 什么是双折射现象 一般的光学材料都是均匀的各向同性的&#xff0c;也就是说无论光…

STM32物联网实战开发(6)——PWM驱动LED灯

PWM驱动LED灯 之前是使用标准库函数配置引脚输出PWM控制呼吸灯&#xff0c;因为开发板上的蜂鸣器是有源的&#xff0c;所以这次还是用来确定LED灯&#xff0c;这次使用的是HAL库&#xff0c;用CubeMX软件初始化PWM功能 PWM输出原理 Period&#xff1a;周期&#xff0c;单位是秒…

语音处理加窗分帧

语音处理加窗分帧 一、分帧 语音数据和视频数据不同&#xff0c;本没有帧的概念&#xff0c;但是为了传输与存储&#xff0c;我们采集的音频数据都是一段一段 的。为了程序能够进行批量处理&#xff0c;会根据指定的长度(时间段或者采样数)进行分段&#xff0c;结构化为我们编程…

Javaweb | 转发、重定向

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 转发 转发与页面跳转 转发 转发的作用在服务器端&#xff0c;将请求发送给服务器上的其他资源&#xff0c;以共同完成一次请求的处理 页面跳转 使用forward跳转时&am…

拍卖小程序开发:从需求分析到设计实现

在当今数字时代&#xff0c;拍卖小程序已经成为了一个重要的销售和交易工具。拍卖小程序的开发不仅能够提供高效的销售渠道&#xff0c;还能够为用户提供全新的购物体验。因此&#xff0c;开发一个拍卖小程序成为了许多商家的首要任务。 拍卖小程序的开发可以帮助商家拓展销售…

Linux下实现共享内存的两种机制(附源码)

START Hello 大家好。 今天来讲一下Linux进程通信中重要的通信方式&#xff1a;共享内存作为Linux软件开发攻城狮&#xff0c;进程间通信是必须熟练掌握的重要技能&#xff0c;而共享内存是在程序开发中常用的也是重要的一种进程间通信方式。 下面我们就来聊一聊Linux下进程间…

pytest自动化框架之allure测试报告的用例描述设置

allure测试报告的用例描述相关方法&#xff1b;如下图 allure标记用例级别severity 在做自动化测试的过程中&#xff0c;测试用例越来越多的时候&#xff0c;如果执行一轮测试发现了几个测试不通过&#xff0c;我们也希望能快速统计出缺陷的等级。 pytest结合allure框架可以对…

每日学术速递4.26

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.AutoNeRF: Training Implicit Scene Representations with Autonomous Agents 标题&#xff1a;AutoNeRF&#xff1a;使用自主代理训练隐式场景表示 作者&#xff1a;Pierre Marz…

SaaS云HIS系统源码功能介绍

SaaS云HIS首页功能&#xff1a;包括工作计划、预警、主功能菜单、医院机构公告。 一、工作计划 1.值班概况&#xff1a;值班日期、值班时间、值班科室&#xff08;内科、外科等&#xff09; 2.待处理患者&#xff1a;内科人数、外科人数等 病历统计&#xff1a;入院病历、出…

华为面试题:1+4=5,2+5=12,3+6=21,问8+11=?网友:幼儿园级别

面试&#xff0c;一直都是职场人士绕不过去的坎&#xff0c;对于有的人来说&#xff0c;或许更擅长日常的工作&#xff0c;在面试环节可谓是自己的薄弱环节&#xff0c;但对于有的人来说&#xff0c;相比于工作&#xff0c;更擅长应付面试&#xff01; 最近&#xff0c;有一位…

《面向基于人工智能的学习健康系统,使用心电图进行人群水平的死亡率预测》阅读笔记

目录 一、摘要 二、十个问题 Q1论文试图解决什么问题&#xff1f; Q2这是否是一个新的问题&#xff1f; Q3这篇文章要验证一个什么科学假设&#xff1f; Q4有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一课题在领域内值得关注的研究员&#xff1f; Q5论文中提到…

过来人转本考试后的感悟和经验,真的很受用

过来人转本考试后的感悟和经验&#xff0c;真的很受用&#xff01;转本不仅是分数的较量&#xff0c;也是信息收集、时间管理、学习能力、毅力等等的较量。同学们在转本中难免会遇见一些困难&#xff0c;为了避免走弯路&#xff0c;一起来看看过来人的感悟和经验吧&#xff01;…