一、nmon监控服务器性能;
nmon官网下载相应版本,如centos7 下载nmon16e...
1.wget http://sourceforge.net/projects/nmon/files/nmon16e_mpginc.tar.gz下载;
2.新建目录nmon16e,mkdir nmon16e
3.解压到指定目录nmon16e; tar -zxvf nmon16e_mpginc.tar.gz -C nmon16e
4.在nmon16e中找到 ..._centos7,并对它添加执行权限;
5.把..._centos7加入环境变量中,mv nmon_x86_64_centos7 /usr/local/bin/nmon
6.输入nmon,启动nmon; 下图显示了不同快捷键的用法;
6.1,按下c,显示cpu信息;按下m,显示内存信息;
7.数据采集;
性能测试时,需要根据测试场景的执行情况,分析一段时间内系统资源的变化,这时需要nmon采集数据并保存下来,以下是常用参数;
-f :生成文件,文件名=主机名+当前时间.nmon
-T:显示资源占有率较高的进程;
-s:-s 5 表示每隔5s采集一次数据;
-c:-c 10 表示总共采集10次数据;
-m:指定文件保存目录;
如:nmon -f -s 30 -c 8 -m /usr/local
7.1.若是想要关闭nmon,ps -ef | grep nmon;
7.2 根据pid,杀掉进程;kill -9 pid
8.使用winscp将centos7下的测试结果,拷贝到windows下;
9.数据分析;
使用nmon_analyser,IBM中的某大咖写的;
8.1下载,解压;
8.2.双击 nmon analyser v66.xlsm,excel需要允许打开宏;
8.3.点击excel中的"analyze nmon data",然后打开结果文件.nmon格式,另存为.xlsx格式;
8.4 如下图结果;
二、使用ServerAgent监控服务器性能;
下载插件;
1.访问https://jmeter-plugins.org/install/Install/ 或 https://jmeter-plugins.org/downloads/old/,下载两个文件,JMeterPlugins-Extras和JMeterPlugins-Standard是客户端的;解压后将jar包放到jmeter的lib/ext目录下;
2.访问 https://github.com/undera/perfmon-agent 下载serveragent,它是服务端的;将解压后的ServerAgent-2.2.3文件,使用WinScp放到linux系统上;
并执行chmod +x startAgent.sh赋权;./startAgent.sh执行;默认是通过4444端口监控服务器;(可以通过java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 7777 --tcp-port 7777该端口号为7777并执行;)
打开jmeter,添加线程组——添加监听器 jp@gc-PerfMon Metrics Collector;
配置端口和ip,端口默认4444; 运行查看结果;
实例:
本人服务器是阿里云,考虑到4444端口未对外开放,无法连接,3306端口未使用,所以使用3306端口;
netstat -lnp | grep 3306查看3306端口是否使用;
java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 3306 --tcp-port 3306;运行并切换端口3306
如上图,linux上运行serveragent,监控3306端口,windows下,cmd下,输入telnet 47.98.106.11 3306,按下enter键,然后输入‘test’,查看linux中命令行显示test命令,则连接成功;
jmeter持续运行,并监控ip,3306端口的cpu,memory等;
Linux sar命令
sar(System Activity Reporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等;
sar命令常用格式
sar [options] [-o file] t [n]
其中:
t 为采样间隔,n为采样次数,默认值是1;
-o file 表示将命令结果以二进制格式存放在文件中,file是文件名;
options 为命令行选项,sar命令常用选项如下:
-A:所有报告的总和;
-u:输出CPU使用情况的统计信息;
-v:输出inode、文件和其他内核表的统计信息;
-d:输出每一个块设备的活动信息;
-r:输出内存和交换空间的统计信息;
-b:显示I/O和传送速率的统计信息;
-a:文件读写情况;
-c:输出进程统计信息,每秒创建的进程数;
-R:输出内存页面的统计信息;
-y:终端设备活动情况;
-w:输出系统交换活动信息;
命令使用:
1)监控所有资源的报告;sar -A -o all 5 1 ;每5秒采样一次,连续采样1次;观察所有资源的使用情况,并将采样结果以二进制形式存入文件all中;
查看二进制文件all中的内容;
查看所有内容输入:sar -a -f all
查看CPU相关的内容输入:sar -u -f all
(2) CPU资源监控;
sar -u 10 2 每10秒采样一次,连续采样2次,观察CPU的使用情况;
要判断系统瓶颈问题,有时需要几个sar命令选项结合起来;
怀疑CPU存在瓶颈,可用sar -u和sar -q等来查看;
怀疑内存存在瓶颈,可用sar -B、sar -r、sar -W等来查看;
怀疑I/O存在瓶颈,可用sar -b、sar -u、sar -d等来查看;
linux sar命令可参考:https://www.jianshu.com/p/79bfbfdc95c7