一、认识nmon
nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,记录的信息比较全面,
并且能输出结果到文件中,然后通过nmon_analyser工具产生数据文件与图形化结果。
二、下载nmon
nmon:
版本:nmon_linux_14i.tar.gz
地址:https://sourceforge.net/projects/nmon/files/?source=navbar
nmonanalyser:
nmon_analyser 由IBM提供, 使用excel的宏命令分析加载生成excel图表,展示资源占用的各项信息。
版本:nmon_analyser_v33g.zip
地址: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser
三、安装nmon
安装位置:/home/nmon (任意目录)
1、 在home目录下创建nmon文件夹:# mkdir nmon
2、 查看Linux发行版:cat /etc/issue
执行结果:
nmon@LXEFPAPPD1:~> cat /etc/issue
Welcome to SUSE Linux Enterprise Server 12 SP2 (x86_64) - Kernel \r (\l).
从而确定:系统是64位,SUSE 12的版本
3 、本地解压nmon_linux_14i.tar.gz并上传对应版本nmon_x86_64_opensuse12到nmon目录
4、 赋权限:# chmod 777 nmon_x86_64_opensuse12
5、 启动nmon:# ./nmon_x86_64_opensuse12(在nmon目录下执行命令)
安装成功显示以下界面:
四、实时监控
输入以下命令:
c 可显示CPU的信息
m 对应内存
n 对应网络
d 可以查看磁盘信息
t 可以查看系统的进程信息
五、采集监控数据
在实际的性能测试中我们需要把一段时间之内的数据记录下来,如:
1、采集数据
# ./nmon_x86_64_opensuse12 -ft -s5 - c60 -F test.nmon
参数说明:
-s5 每隔n秒抽样一次,这里为5秒
-c60 取出多少个抽样数量,这里为60,即监控=5*60/60=5分钟
-f 按标准格式输出文件名称:
-t 输出中包括占用率较高的进程
-F 指定文件名
PS:一般来说不建议对稳定性测试使用nmon监控,因为生成的nmon文件超过10M时,分析工具会由于内存不足导致报错。
如果必须进行的话,建议加大采样频次,降低采样次数(低于330次)。
六、生成图形化报表
1、将test.nmon文件传到本地电脑上
2、打开nmon analyser v33g.xls并启动宏
3、点击excel里的"Analysis nmon data"按钮,打开你需要进行分析的nmon监控文件:
4、通过分析工具生成的监控数据结果如下图:
七、nmon analyser常用指标解析:
1、CPU_ALL:
所有CPU概述,显示监控系统所有CPU的平均占用情况,包含User/Sys/Wait/Idle状态
a. User%,用户模式下执行的程序所使用的CPU百分比
b. Sys%,内核模式下执行的程序所使用的CPU百分比
c. Wait%,等待 IO 所花的时间百分比
d. Idel%,CPU的空闲时间百分比,此值和User%,Sys%,Wait%之和等于1
e. CPU%,CPU总体占用情况,这个值通常等于User%+Sys%+Wait%
f. CPUs,CPU核数,即操作系统是多少C的
CPU百分比取User%+Sys%稳定阶段的平均值
2、DISKBUSY:
每个hdisk设备平均占用情况,单位为%(百分比)
磁盘繁忙度去最高磁盘的平均值
3、MEM:
内存使用情况描述,包括物理内存和虚拟内存
a. memtotal,物理内存总大小
b. swaptotal,虚拟内存(即交换空间)的总大小
c. memfree,剩余物理内存大小
d. swapfree,剩余虚拟内存大小
e. cached,已占用的文件系统缓存大小,由物理内存分配
f. buffers,文件系统缓冲区大小
g. swapcached,虚拟内存中已分配出来的内存大小
h. inactive,最近不常使用的内存大小
可用内存=memfree + cached + buffers
memfree够用的情况下:memfree内存利用率:(初始值-最小值)/总内存
memfree不够用的情况下:可用内存利用率:(初始值-最小值)/总内存
内存泄漏:稳定性测试:可用内存:结束值-初始值
PS: 一个交易完成结束后需要一段时间释放内存,两个场景之间的间隔3~5分钟释放内存资源。