结论:
1,可以采用基于python的图形分析器展现自linux或aix采集的历史性能数据
2,基于python的图形分析器可以交互式即实时展现性能数据,也可以展现历史性能数据
3,基于python的图形分析器运行必须先生成一个配置文件report.config
这个配置文件作用类似于到底展现性能数据中哪些数据,比如磁盘,网卡,内核,内存等
5,基于python分析nmon的图形分析器较之于ibm发布的nmon图形分析器,优点在于不需要使用excel
测试:
1,操作系统版本
[root@seconary nmon_test]# more /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
[root@seconary nmon_test]#
2,查看nmon如何使用
[root@seconary nmon_test]# ./nmon_x86_64_rhel54 --help
./nmon_x86_64_rhel54: invalid option -- -
Hint: nmon_x86_64_rhel54 [-h] [-s <seconds>] [-c <count>] [-f -d <disks> -t -r <name>] [-x]
-h FULL help information
Interactive-Mode:
read startup banner and type: "h" once it is running
For Data-Collect-Mode (-f)
-f spreadsheet output format [note: default -s300 -c288] —默认每天生成历史的采样性能数据文件,10分钟采样一次,采一天性能数据
optional
-s <seconds> between refreshing the screen [default 2]
-c <number> of refreshes [default millions]
-d <disks> to increase the number of disks [default 256]
-t spreadsheet includes top processes
-x capacity planning (15 min for 1 day = -fdt -s 900 -c 96)
[root@seconary nmon_test]#
3,默认生成的nmon性能历史数据文件,其文件格式为:主机名称_年月日_nmon开始采样的具体时间(精确到时分)
[root@seconary nmon_test]# ll -l
total 432
-rwxrwxrwx 1 root root 185939 Sep 4 03:39 lmon.c
-rwxr-xr-x 1 root root 219751 Sep 4 05:22 nmon_x86_64_rhel54
-rw-r--r-- 1 root root 22956 Sep 4 06:11 seconary_150904_0611.nmon
[root@seconary nmon_test]#
4,查看nmon进程是否正在运行
[root@seconary nmon_test]# ps -ef|grep nmon
root 14330 1 0 06:11 pts/1 00:00:00 ./nmon_x86_64_rhel54 -f
root 15800 6012 0 06:19 pts/2 00:00:00 tail -f seconary_150904_0611.nmon
root 15902 19483 0 06:19 pts/1 00:00:00 grep nmon
5,nmon性能数据文件好像没有变化
[root@seconary nmon_test]# ll
total 432
-rwxrwxrwx 1 root root 185939 Sep 4 03:39 lmon.c
-rwxr-xr-x 1 root root 219751 Sep 4 05:22 nmon_x86_64_rhel54
-rw-r--r-- 1 root root 24022 Sep 4 06:16 seconary_150904_0611.nmon
[root@seconary nmon_test]#
[root@seconary nmon_test]#
[root@seconary nmon_test]# ll
total 432
-rwxrwxrwx 1 root root 185939 Sep 4 03:39 lmon.c
-rwxr-xr-x 1 root root 219751 Sep 4 05:22 nmon_x86_64_rhel54
-rw-r--r-- 1 root root 24022 Sep 4 06:16 seconary_150904_0611.nmon
[root@seconary nmon_test]# ll
total 432
-rwxrwxrwx 1 root root 185939 Sep 4 03:39 lmon.c
-rwxr-xr-x 1 root root 219751 Sep 4 05:22 nmon_x86_64_rhel54
-rw-r--r-- 1 root root 24022 Sep 4 06:16 seconary_150904_0611.nmon
6,杀掉nmon进程
[root@seconary nmon_test]# kill -9 14330
7,重新以每2次刷新1次nmon且监控1天
[root@seconary nmon_test]# ./nmon_x86_64_rhel54 -s 2 -c 288 -f
[root@seconary nmon_test]#
8,nmon的采样数据文件可以实时变化
[root@seconary nmon_test]# tail -f seconary_150904_0622.nmon
部分内容略
CPU_ALL,T0022,1.5,1.5,0.5,96.5,,1
MEM,T0022,3956.9,0.0,3956.9,6024.0,215.4,0.0,215.4,5640.9,-0.0,79.1,517.5,-1.0,2.5,24.4,8.8
HUGEPAGES,T0022,1539,557,2.0
VM,T0022,34,0,0,19281,16724,10132,0,132,0,0,63,1,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
PROC,T0022,1,0,1654.0,-1.0,-1.0,-1.0,3.0,-1.0,-1.0,-1.0
NET,T0022,0.9,0.0,0.0,0.9,0.6,0.0,
NETPACKET,T0022,18.5,0.5,0.0,18.5,0.5,0.0,
JFSFILE,T0022,47.7,12.3,4.3,83.4,50.5,nan,100.0
DISKBUSY,T0022,0.0,0.0,0.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
DISKREAD,T0022,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
DISKWRITE,T0022,16.0,0.0,16.0,2.0,40.0,40.0,0.0,2.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,16.0,0.0,0.0
DISKXFER,T0022,1.0,0.0,1.0,0.5,2.5,2.5,0.0,0.5,0.5,0.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.0,4.0,0.0,0.0
DISKBSIZE,T0022,16.0,0.0,16.0,4.0,16.0,16.0,0.0,4.0,4.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,4.0,0.0,0.0
ZZZZ,T0023,06:23:13,04-SEP-2015
CPU001,T0023,1.0,0.5,0.0,98.5
CPU_ALL,T0023,1.0,0.5,0.0,98.5,,1
9,下载基于python的nmon图形分析器
10,解压安装介质并安装
zhaixunyang:nmon zhaixunyang$ pwd
/Volumes/Untitled/nmon
zhaixunyang:nmon zhaixunyang$
zhaixunyang:nmon zhaixunyang$ ls -l
total 3072
-rwxrwxrwx@ 1 zhaixunyang staff 185939 8 11 2010 lmon14a.c
-rwxrwxrwx@ 1 zhaixunyang staff 4154 5 3 22:37 makefile
-rwxrwxrwx@ 1 zhaixunyang staff 40977 9 4 18:31 pyNmonAnalyzer-1.0.zip
zhaixunyang:nmon zhaixunyang$ cp pyNmonAnalyzer-1.0.zip pyNmonAnalyzer-1.0.zip.bak
zhaixunyang:nmon zhaixunyang$
zhaixunyang:nmon zhaixunyang$ unzip pyNmonAnalyzer-1.0.zip
Archive: pyNmonAnalyzer-1.0.zip
e983b270c48cb8b4ba90295573002e701de88f3e
extracting: .gitattributes
inflating: .gitignore
inflating:
README.md
inflating: interactiveReport.tpl.html
inflating:
pyNmonAnalyzer.py
inflating:
pyNmonParser.py
inflating:
pyNmonPlotter.py
inflating: test.nmon
11,pynmonanalyzer.py图形分析器的命令使用
zhaixunyang:nmon zhaixunyang$ ./pyNmonAnalyzer.py
usage:
pyNmonAnalyzer.py [-h] [-x] [-d] [-i INPUT_FILE] [-o OUTDIR] [-c] [-b]
[--buildInteractiveReport] [-r CONFFNAME]
[--defaultConfig] [-l LOGLEVEL]
nmonParser converts NMON monitor files into time-sorted CSV/Spreadsheets for
easier analysis, without the use of the MS Excel Macro. Also included is an
option to build an HTML report with graphs, which is configured through
report.config.
optional arguments:
-h, --help show this help message and exit
-x, --overwrite overwrite existing results (Default: False)
-d, --debug debug? (Default: False)
-i INPUT_FILE, --inputfile INPUT_FILE
Input NMON file
-o OUTDIR, --output OUTDIR
Output dir for CSV (Default: ./report/)
-c, --csv CSV output? (Default: False)
-b, --buildReport report output? (Default: False)
--buildInteractiveReport
Compile interactive report? (Default: False)
-r CONFFNAME, --reportConfig CONFFNAME
Report config file, if none exists: we will write the
default config file out (Default: ./report.config)
--defaultConfig Write out a default config file
-l LOGLEVEL, --log LOGLEVEL
Logging verbosity, use DEBUG for more output and
showing graphs (Default: INFO)
zhaixunyang:nmon zhaixunyang$
12,生成用于生成图形展示的默认配置文件,好像报错了
zhaixunyang:nmon zhaixunyang$ ./pyNmonAnalyzer.py --defaultConfig
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 851, in emit
msg = self.format(record)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 724, in format
return fmt.format(record)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 464, in format
record.message = record.getMessage()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 328, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Logged from file
pyNmonAnalyzer.py, line 45
zhaixunyang:nmon zhaixunyang$
13,mac上面的python版本
zhaixunyang:nmon zhaixunyang$ python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
zhaixunyang:nmon zhaixunyang$
14,我们分析python报错
zhaixunyang:nmon zhaixunyang$ ls -l
total 15360
-rwxrwxrwx@ 1 zhaixunyang staff 3971 6 24 2013
README.md
-rwxrwxrwx@ 1 zhaixunyang staff 2134 6 24 2013 interactiveReport.tpl.html
-rwxrwxrwx@ 1 zhaixunyang staff 185939 8 11 2010 lmon14a.c
-rwxrwxrwx@ 1 zhaixunyang staff 4154 5 3 22:37 makefile
-rwxrwxrwx@ 1 zhaixunyang staff 40977 9 4 18:31 pyNmonAnalyzer-1.0.zip
-rwxrwxrwx@ 1 zhaixunyang staff 40977 9 4 18:38 pyNmonAnalyzer-1.0.zip.bak
-rwxrwxrwx@ 1 zhaixunyang staff 8573 6 24 2013
pyNmonAnalyzer.py
-rwxrwxrwx@ 1 zhaixunyang staff 3879 6 24 2013
pyNmonParser.py
-rwxrwxrwx 1 zhaixunyang staff 3949 9 4 18:41 pyNmonParser.pyc
-rwxrwxrwx@ 1 zhaixunyang staff 6820 6 24 2013
pyNmonPlotter.py
-rwxrwxrwx 1 zhaixunyang staff 6795 9 4 18:41 pyNmonPlotter.pyc
-rwxrwxrwx@ 1 zhaixunyang staff 4309 6 24 2013
pyNmonReport.py
-rwxrwxrwx 1 zhaixunyang staff 4378 9 4 18:41 pyNmonReport.pyc
-rwxrwxrwx 1 zhaixunyang staff 518 9 4 18:43 report.config
-rwxrwxrwx@ 1 zhaixunyang staff 155220 6 24 2013 test.nmon
zhaixunyang:nmon zhaixunyang$
16,查看report.config配置文件
zhaixunyang:nmon zhaixunyang$ more report.config
# Plotting configuration file.
# =====
# please edit this file carefully, generally the CPU and MEM options are left blank
# since there is under the hood calculations going on to plot used vs total mem and
# CPU plots usr/sys/wait for all CPUs on the system
# Do adjust DISKBUSY and NET to plot the desired data
#
# Defaults:
# CPU_ALL=user,sys,wait{stackedGraph: true, fillGraph: true}
# DISKBUSY=sda1,sdb1{}
# MEM=memtotal,active{}
# NET=eth0{}
CPU=user,sys,wait
DISKBUSY=sda1,sdb1
MEM=memtotal,active
NET=eth0
17,生成nmon图形文件(注:-o指定生成的图形文件输出目录,-i指定输入的nmon源性能历史数据文件,-b表明生成图形文件)
zhaixunyang:nmon zhaixunyang$ ./pyNmonAnalyzer.py -b -o testreport -i test.nmon
zhaixunyang:nmon zhaixunyang$ ll
-bash: ll: command not found
zhaixunyang:nmon zhaixunyang$ ls -l
total 16384
-rwxrwxrwx@ 1 zhaixunyang staff 3971 6 24 2013
README.md
-rwxrwxrwx@ 1 zhaixunyang staff 2134 6 24 2013 interactiveReport.tpl.html
-rwxrwxrwx@ 1 zhaixunyang staff 185939 8 11 2010 lmon14a.c
-rwxrwxrwx@ 1 zhaixunyang staff 4154 5 3 22:37 makefile
-rwxrwxrwx@ 1 zhaixunyang staff 40977 9 4 18:31 pyNmonAnalyzer-1.0.zip
-rwxrwxrwx@ 1 zhaixunyang staff 40977 9 4 18:38 pyNmonAnalyzer-1.0.zip.bak
-rwxrwxrwx@ 1 zhaixunyang staff 8573 6 24 2013
pyNmonAnalyzer.py
-rwxrwxrwx@ 1 zhaixunyang staff 3879 6 24 2013
pyNmonParser.py
-rwxrwxrwx 1 zhaixunyang staff 3949 9 4 18:41 pyNmonParser.pyc
-rwxrwxrwx@ 1 zhaixunyang staff 6820 6 24 2013
pyNmonPlotter.py
-rwxrwxrwx 1 zhaixunyang staff 6795 9 4 18:41 pyNmonPlotter.pyc
-rwxrwxrwx@ 1 zhaixunyang staff 4309 6 24 2013
pyNmonReport.py
-rwxrwxrwx 1 zhaixunyang staff 4378 9 4 18:41 pyNmonReport.pyc
-rwxrwxrwx 1 zhaixunyang staff 518 9 4 18:43 report.config
-rwxrwxrwx@ 1 zhaixunyang staff 155220 6 24 2013 test.nmon
drwxrwxrwx 1 zhaixunyang staff 524288 9 4 19:21 testreport
18,查看生成的图形文件
zhaixunyang:nmon zhaixunyang$ cd testreport/
zhaixunyang:testreport zhaixunyang$ ls -l
total 2048
drwxrwxrwx 1 zhaixunyang staff 524288 9 4 19:21 img
-rwxrwxrwx 1 zhaixunyang staff 623 9 4 19:21 report.html
zhaixunyang:testreport zhaixunyang$
19,打开图形文件

20,继续学习,我们加载一个运行历史较久的nmon源数据文件
使用-x选项直接覆盖已有的图形文件目录
zhaixunyang:nmon zhaixunyang$ ./pyNmonAnalyzer.py -b -o testreport -i seconary_150904_0622.nmon
ERROR:root:Results directory already exists, please remove or use '-x' to overwrite
zhaixunyang:nmon zhaixunyang$ ./pyNmonAnalyzer.py -x -b -o testreport -i seconary_150904_0622.nmon
zhaixunyang:nmon zhaixunyang$
21,关于图形不再列出,略
个人简介
8年oracle从业经验,具备丰富的oracle技能,目前在国内北京某专业oracle服务公司从事高级技术顾问。
服务过的客户:
中国电信
中国移动
中国联通
中国电通
国家电网
四川达州商业银行
湖南老百姓大药房
山西省公安厅
中国邮政
北京302医院
河北廊坊新奥集团公司
项目经验:
中国电信3G项目AAA系统数据库部署及优化
中国联通4G数据库性能分析与优化
中国联通CRM数据库性能优化
中国移动10086电商平台数据库部署及优化
湖南老百姓大药房ERR数据库sql优化项目
四川达州商业银行TCBS核心业务系统数据库模型设计和RAC部署及优化
四川达州商业银行TCBS核心业务系统后端批处理存储过程功能模块编写及优化
北京高铁信号监控系统RAC数据库部署及优化
河南宇通客车数据库性能优化
中国电信电商平台核心采购模块表模型设计及优化
中国邮政储蓄系统数据库性能优化及sql优化
北京302医院数据库迁移实施
河北廊坊新奥data guard部署及优化
山西公安厅身份证审计数据库系统故障评估
国家电网上海灾备项目4 node rac+adg
贵州移动crm及客服数据库性能优化项目
贵州移动crm及客服务数据库sql审核项目
深圳穆迪软件有限公司数据库性能优化项目
联系方式:
手机:18201115468
qq : 305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-1791154/
,如需转载,请注明出处,否则将追究法律责任。