余自庚寅年麦月误入Linux领域,先从事文件系统与IO之技,后及性能基准之术,上诸述之领域,吾虽有知晓,然未能精通,实为憾事!
全部博文(31)
分类: LINUX
2013-08-11 12:20:52
实际工作中,Nmon有三种常用的使用模式,分别是实时监控、后台监控和定期监控模式。下面分别加以介绍。
1、实时监控:在完成配置后,只需要“#./nmon”命令即可运行程序,通过一些快捷键调取关心的系统资源指标进行显示,如按键“C”可以查看CPU相关信息;按键“D”可以查看磁盘信息;按键“T”可以查看系统的进程信息;“M”对应内存、“N”对应网络等等,完整的快捷键对应内容可以通过帮助(按键“H”)查看,可以显示Linux系统CPU、内存、进程信息,包括了CPU的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的CPU消耗等详细指标。该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况,每颗CPU利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据实时刷新,一目了然。但是如果我们希望将一段时间的资源情况记录下来,以备后续的分析工作,则需要以另一种方式使用Nmon。
2、后台监控:为了配合性能测试,我们往往需要将一个时间段内系统资源消耗情况记录下来,这时可以使用命令:./nmon -f -s 10 -c 360。说明:
-f :按标准格式输出文件名称:
-s :每隔n秒抽样一次,这里为10秒
-c :取出多少个抽样数量,这里为360,即监控=10*360/3600=1小时
该命令启动后,会在Nmon所在目录下生成监控文件,并持续写入资源数据,直至360个监控点收集完成——即监控1小时,这些操作均自动完成,无需手工干预,测试人员可以继续完成其他操作。如果想停止该监控,需要通过“#ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。
3、定期监控:除配合性能测试的短期监控,我们也可以实现对系统的定期监控,作为运营维护阶段的参考。定期监控可通过“#crontab -e”命令实现,在最后一行添加“0 8 * * 1,2,3,4,5 /nmon -f -s 30 -c 1200”,表示:周一到周五,从早上08点开始,监控10个小时(到18:00整为止)。
通过后台监控和定期监控,我们可以得到扩展名为nmon的监控文件,这些文件记录着系统资源的数据,需要配合分析工具进行解读。nmon analyser.xls可以将.nmon文件转化为Excel文件,并生成统计图,直观显示系统资源情况。
nmon_analyser_v33g.xls
在测试过程中,我们往往需要更加详细的信息以分析系统性能情况,如果认为磁盘IO偏高,我们需要进一步获取磁盘的详细信息加以分析,在Nmon结果中打开“DISK_SUMM”标签页结合系统实际设置,可以进一步确定造成问题的原因,如系统日志级别过低等等。NMON能够提供CPU、内存、硬盘、网络等各方面的信息,对于我们的分析工作能够提供很好的数据支持。
另外,我们可以通过一些输出参数的调整以得到偏重不同角度、或不同形式的统计结果,其中比较常用的“Intervals”参数,该参数定义了原始.nmon文件的取值范围,即统计内容取自原始数据的哪部分。因为原始数据是多个采样点的集合,通过设置“Intervals”的开始、结束值。
Nmon性能监测工具启动时的截屏如下图所示,其中给出了各个按键触发的相应性能统计数据的监控信息。
按键h触发Nmon给出帮助信息(如下图所示),再次按键h,则关闭帮助信息;
按键r触发Nmon给出Linux操作系统及处理器的相关信息(如下图所示),再次按键r,则关闭该信息;
按键c触发Nmon给出系统某一采样时间内的CPU使用率的相关信息(如下图所示),再次按键c,则关闭该信息;其中U代表用户时间,S代表系统时间,W代表等待I/O完成的时间。空白表示系统Idle的时间。
按键l触发Nmon给出系统过去70个采样点的时间内的CPU使用率的相关信息(如下图所示),再次按键l,则关闭该信息;其中U代表用户时间,S代表系统时间,W代表等待I/O完成的时间。空白表示系统Idle的时间。其中白色的竖直线条是代表移动的采样时间点,一直向右移动,到达最右端后又从最左端开始向右段移动,其中竖直线条中的“+”表示了当前图像中的数据的平均值(也就是过去70个采样点的时间内的CPU平均使用率)
按键m触发Nmon给出系统的内存使用情况的详细信息(如下图所示),再次按键m,则关闭该信息;
按键d触发Nmon给出系统的磁盘及磁盘分区的使用率、读写吞吐量等性能信息(如下图所示),再次按键d,则关闭该信息;R表示磁盘执行读操作,W表示磁盘执行写操作,空白表示磁盘Idle状态。
按键D触发Nmon给出系统的磁盘及磁盘分区的使用率、读写吞吐量、TPS等性能数据的详细信息(如下图所示),再次按键D,则关闭该信息;
按键j触发Nmon给出系统中当前已挂载的日志文件系统及其使用状态的信息(如下图所示,图中根文件系统所在分区已使用70%),再次按键j,则关闭该信息;
按键n触发Nmon给出系统各个网卡的网络I/O的详细信息(如下图所示,图中的系统主要使用eth1网卡),再次按键n,则关闭该信息;
如果超过一定的时间(约5秒钟)没有出现网络错误,将会自动关闭网络错误计数的统计信息,只留下网络I/O的相关信息(如下图所示)。
按键k触发Nmon给出系统内核状态的详细信息(如下图所示),包括运行队列个数、上下文切换次数、Fork子进程次数、中断发生次数、平均负载、平均CPU使用率、系统运行时间、系统Idle时间等等。再次按键k,则关闭该信息;
按键o触发Nmon给出系统各个磁盘分区的使用情况(繁忙程度)的详细信息(如下图所示),图中包含10个磁盘(或分区),按照Key:提示的信息可以看出磁盘0和磁盘2的业务处理的使用在90%以上,其他7个磁盘的则是0%。再次按键o,则关闭该信息;
按键t触发Nmon给出系统的进程的相关信息,默认为模式3,按照CPU使用率的顺序对进程排序(如下图所示)。再次按键t,则关闭该信息;
按键t然后再按5触发Nmon给出系统的进程的相关信息以模式5的方式显示,按照进程产生IO的大小的顺序对进程排序(如下图所示),同时给出进程的运行状态信息。再次按键t,则关闭该信息;