1、nmon工具的下载和安装:

官网:http://nmon.sourceforge.net/pmwiki.php

下载完成后进行解压,更改权限:chmod 777

2、查看linux系统的版本,再使用对应版本的nmon:

[root@jmeter ~]# cat /etc/*release
CentOS release 6.6 (Final)
LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
CentOS release 6.6 (Final)
CentOS release 6.6 (Final)

 可以看出,我的是linux centos6、64位版本,所以使用nmon_x86_64_centos6。 

3、压测过程中对CPU、内存、磁盘、网络的监控:

输入c:查看CPU使用情况,主要关注%use,%sys

输入m:查看内存使用情况

Total in MB:总的内存

    Free  in MB:可用内存

输出n:查看网络

    Recv=KB/s:每秒内接收到的数据

    Trans=KB/s:每秒内传输的数据

输入d:查看磁盘

输入t:Top Processes,进程信息

监控截图

4、还可以使用后台运行模式进行监控,例如:

[root@jmeter nmon]# ./nmon_x86_64_centos6 -f -s 30 -c 30
[root@jmeter nmon]# ll
total 31572
-rw-r--r--. 1 root root 25608 Sep 13 00:14 jmeter_180913_0014.nmon

 可看到自动生成一个nmon文件 

参数解释:

-t 输出中包括占用率较高的进程;
-s 每 n 秒采集一次数据。
-c 采集 m 次,即为采集(n*m/60)分钟的数据。
-f 生成的数据文件名中包含文件创建的时间。
-m 生成的数据文件的存放目录。

 5、设置一个定时,周一到周五,从早上9点开始监控:

 crontab -e
0 9 * * 1,2,3,4,5 /root/benben/nmon/nmon_x86_64_centos6 -f -s 2 -c 180 -m /root/benben/nmondata

 6、生成的.nmon文件可以nmon analyser v34a.xls打开

office版本不同,使用的nmon analyser版本也不同

官网地址:http://www.ibm.com/developerworks/aix/library/au-nmon_analyser/

   7、抽取: 

  一般情况下CPU利用率
  User%应占70%左右,
  Sys%应占30%左右,如果Sys%或Wait%占比等于或超过了User%
  则应该关注是什么引起了过多的系统消耗,可能是大量的Disk或Network I/O。

 

压测过程中使用nmon对服务器资源的监控的更多相关文章

  1. 压测过程中,获取不到redis连接池,发现redis连接数高

    说明:图片截得比较大,浏览器放大倍数看即可(涉及到隐私,打了码,请见谅,如果有疑问,欢迎骚扰). 最近在压测过程中,出现获取不到redis连接池的问题 xshell连接redis服务器,查看连接数,发 ...

  2. 压测过程中,CPU和内存占用率很高,案例简单分析

    Q:  最近公司测试一个接口,数据库采用Mongo    并发策略:并发400个用户,每3秒加载5个用户,持续运行30分钟    数据量:8000条左右 压测结果发现:    TPS始终在5左右   ...

  3. 压测过程中出现ops断崖式下跌原因及排解

    压测机器: 100台docker redis集群:16个分片 在开始压测的半个小时中,一直很稳定,ops稳定在20w左右.但是接下来突然ops断崖式下跌,ops降到了3w以下.然后持续一段时间,直至变 ...

  4. 性能测试:Jmeter压测过程中的短信验证码读取

    问题背景 现如今国内的大部分软件或者网站应用,普遍流行使用短信业务,比如登录.注册以及特定的业务通知等. 对于这些业务,在使用Jmeter进行性能测试的过程中,就会需要自动获取和填入短信验证码,否则性 ...

  5. jmeter进行分布式压测过程与 注意事项

    jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存.cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要对jmeter进行分布式 ...

  6. jmeter压测过程中报java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider

    由于在java中添加了第三方安全策略文件,具体请看https://www.cnblogs.com/mrjade/p/10886378.html,导致在用jmeter压测过程中会遇到以下错误 解决办法: ...

  7. ionic 运行过程中动态切换API服务器地址

    ionic 运行过程中动态切换API服务器地址 keywords: ionic,phonegap,cordova,网络制式,动态切换,变更,API,服务器地址,$resource,localstora ...

  8. Jmeter压测过程报错the target server failed to respond

    失败事务报错信息如下, Socket closed Non HTTP response code: org.apache.http.NoHttpResponseException (the targe ...

  9. sysbench压测过程

    1.sysbench安装(sysbench1.1.0)  [root@master soft]# ls sysbench1.1.0.zip sysbench1.1.0.zip 解压: [root@ma ...

随机推荐

  1. SQL SERVER-时间戳(timestamp)与时间格式(datetime)互相转换

    SQL里面有个DATEADD的函数.时间戳就是一个从1970-01-01 08:00:00到时间的相隔的秒数.所以只要把这个时间戳加上1970-01-01 08:00:00这个时间就可以得到你想要的时 ...

  2. NGUI之实现连连看小游戏

    一,部分游戏规则如下: 二,代码如下: 1. 游戏逻辑核心代码 using System.Collections.Generic; using UnityEngine; namespace Modul ...

  3. xcodebuild 错误:unknown error -1=ffffffffffffffff

    1.security list-keychains 2.security unlock-keychains -p "your password" "your login ...

  4. Nginx 配置文件优化

    user www www; #用户&组 worker_processes auto; #通常是CPU核的数量存储数据的硬盘数量及负载模式,不确定时将其设置为可用的CPU内核数(设置为“auto ...

  5. 关于babel官网的学习

    提起babel,前端er大概都不陌生.但是为什么要有babel呢?解决了什么问题?怎么使用babel呢?注意点在哪?以下就从这几个方面总结一下我关于babel学习的结果吧. 为什么要有babel呢? ...

  6. ASP.NET页面之间传值的方式之Server.Transfer(个人整理)

    Server.Transfer 这个方法相比以前介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写 ...

  7. WC.exe【C】

    gitee传送门!!!(电脑打不开github,多次尝试未果,决定先用gitee存着先) 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序 ...

  8. git clone git@github.com:snuglove/ 报错

    [root@qc_centos7_5 ~]# git clone git@github.com:snuglove/Job-hunting-related.git Cloning into 'Job-h ...

  9. laravel blog edit

    模板复制create的模板 主要修改的地方 <form action="{{ url('admin/article/'.$article->id) }}" method ...

  10. class多态

    多态代码实现: class Animal(object): def __init__(self, name): # Constructor of the class self.name = name ...