linux 监控性能 oracle性能监控
Linux性能监控与调优工具
除了保证程序的正确性以外,在项目开发中往往还关心性能和稳定性。我们往往要对内核、应用程序或整个系统进行性能优化。在性能优化中常用的手段如下:
使用top、vmstat、iostat、sysctl等常用工具
top命令用于显示处理器的活动状况。在缺省情况下,显示占用CPU最多的任务,并且每隔5s做一次刷新;vmstat命令用于报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息;iostat命令用于分析各个磁盘的传输闲忙状况;netstat是用来检测网络信息的工具; sar用于收集、报告或者保存系统活动信息,其中,sar用于显示数据,sar1和sar2用于收集和保存数据
sysctl是一个可用于改变正在运行中的Linux系统的接口。用sysctl可以读取几白个以上的系统变量,如用sysctl—a可读取所有变量。
sysctl的实现原理是:所有的内核参数在/proc/sys中形成一个树状结构,sysctl系统调用的内核函数是sys_sysctl,匹配项目后,最后的读写在do_sysctl_strategy中完成。
2.使用高级分析手段,如OProfile、gprof
OProfile可以帮助用户识别诸如模块的占用时间、循环的展开、高速缓存的使用率低、低效的类型转换和冗余操作、错误预测转移等问题。它收集有关处理器事件的信息,其中包括TLB的故障、停机、存储器访问以及缓存命中和未命中的指令的攫取数量。OProfile支持两种采样方式:基于事件的采样(Event Based)和基于时间的采样(Time Based)。基于事件的采样是OProfile只记录特定事件(比如L2缓存未命中)的发生次数,当达到用户设定的定值时Oprofile就记录一下(采一个样)。这种方式需要CPU内部有性能计数器(Performace Counter))。基于时间的采样是OProfile借助OS时钟中断的机制,在每个时钟中断,OProfile都会记录一次(采一次样)。引入它的目的在于,提供对没有性能计数器的CPU的支持,其精度相对于基于事件的采样要低,因为要借助OS时钟中断的支持,对于禁用中断的代码,OProfile不能对其进行分析。
linux性能监控工具有哪些
1、顶部-Linux进程监控
Linux Top命令是性能监视程序,很多系统管理员经常用它监视Linux性能,可以再许多Linux/Unix操作系统下使用,可以显示CPU使用情况、内存使用情况、交换内存、缓存大小、缓冲区大小、进程PID、用户、命令等等,它还显示高内存和CPU运行流程的利用。
2、VmStat-虚拟内存统计
Linux VmStat命令用于显示虚拟内存,kernerl线程,磁盘,系统进程,I/O块,中断,CPU活动等的统计信息。默认情况下,vmstat命令在Linux系统下不可用,您需要安装名为sysstat的软件包,其中包含vmstat程序。
3、Lsof-列出打开的文件
许多Linux/Unix系统中使用的Lsof命令,用于显示所有打开文件和进程的列表。包含的开放文件是磁盘文件、网络套接字、管道、设备和进程。使用此命令的主要原因之一是无法卸载磁盘并显示正在使用或打开文件的错误。使用此命令,您可以轻松识别哪些文件正在使用中。
4、Tcpdump-网络分组分析器
Tcpdump是使用最广泛的命令行、网络数据包分析器或数据包嗅探器程序之一,用于捕获或过滤通过网络在特定接口上接收或传输的TCP/ IP数据包。它还提供了一个选项,可以将捕获的包保存在文件中供以后分析。tcpdump几乎可用于所有主要的Linux发行版。
5、Netstat-网络统计
Netstat是一个命令行工具,用于监视传入和传出网络数据包统计信息以及接口统计信息,对于每个系统管理员来说,监视网络性能并排除网络相关问题是非常有用的工具。
6、Htop-Linux进程监控
Htop是一款非常先进的交互式和实时Linux过程监控工具。这与Linux top命令非常相似,但它具有一些丰富的功能,如用户友好的界面来管理进程、快捷键、进程的垂直和水平视图等等。
Linux怎么使用nmon监控性能,分析系统性能数据
用Nmon监控Linux系统性能的方法请参见下面介绍(配图):
1、安装Nmon
2、一旦安装完成,则可以通过在终端执行 nmon命令启动它。
Nmon命令执行之后,大家可以看到如下输出:
3、从上图中大家可以看到,Nmon命令行工具是一个用户交互的应用程序,大家可以非常方便地使用键盘快捷键来查看相关统计信息。
q:停止并退出Nmon
h:查看帮助信息
c:查看 CPU统计信息
m:查看内存统计信息
d:查看磁盘统计信息
k:查看内核统计信息
n:查看网络统计信息
N:查看 NFS统计信息
j:查看文件系统统计信息
t:查看 Top进程统计信息
V:查看虚拟内存统计信息
v:详细输出模式
4、查看 CPU统计信息
如果你想查看 CPU性能信息,可以直接按 c键:
5、查看 Top进程统计信息
如果你想查看 Top进程统计信息,可以直接按 t键:
6、查看网络统计信息
如果你想查看网络统计信息,可以直接按 n键:
7、磁盘I/O图
使用 d键可以查看磁盘统计信息:
8、查看内核统计信息
如果你想查看内核统计信息,可以直接按 k键:
9、获取系统信息
如果要查看 Linux的系统信息,如:系统架构、操作系统版本、Linux版本则可以使用 r键,这对系统管理员非常有用。
以上是基础使用方法。下面再补充一些命令和方法:
1、启动
打开nmon所在的目录:cd/usr/local/nmon
修改启动文件的访问权限:chmod 755 nmon_x86_rhel52
启动nmon:./nmon_x86_rhel52
如果要采样nmon的数据保存成文件,可以
./nmon_x86_rhel52-fT-s 30-c 120
其中30表示每隔30秒nmon取一次系统性能数据,120表示取120次;
这样nmon将会在运行开始算起连续取得30sX120=60分钟,可根据实际需要时间调整;当运行以上命令后该目录下会生成一个.nmon文件,该文件会根据间隔时间被写入性能数据,当一段时间后再查看该文件,文件字节变大
利用nmonanalyser分析.nmon文件
当测试结束的同时ftp到服务器上将.nmon文件get下来,
打开nmon_analyser.zip包下的nmon analyser v338.xls文件,点击Analyse nomn data按钮,选择之前get来下的.nmon文件。
(如果报告以下宏的安全级别太高错误,则在“工具--宏--安全性”里把级别调低,然后重新打开 nmon analyser v338.xls文件)
待分析结束后会生成性能分析结果文件(文件格式为.xls,其中包括CPU,IO,内存等性能分析报告)。
分析结果中有很多数据和图形,简要介绍主要的性能参数图像
4.1系统汇总(对应excel标签的‘SYS_SUMM’)
蓝线为cpu占有率变化情况;
粉线为磁盘IO的变化情况;
4.2磁盘读写情况汇总(对应excel标签的‘DISK_SUMM’)
蓝色为磁盘读的速率KB/sec
紫色为磁盘写的速率KB/sec
4.3内存情况汇总(对应excel标签的‘MEM’)
曲线表示内存剩余量(MB)
分析数据得到的报告文件(.xls)中包含很多性能分析结果数据,根据自己的需要查看。
2、nmon运行本身就消耗系统资源的;
另外如果取到.nmon文件后确定不再需要nmon继续收集信息则应kill掉nmon;
命令:
ps-A| grep nmon#得到pid
kill-9 pid
suse10 enterprise sp2:
nmon_x86_rhel3
使用对应的操作系统文件:
chmod+x nmon_x86_ubuntu810
mv nmon_x86_ubuntu810/usr/local/bin/nmon
对于 Debian还要做以下操作(不做也同样能运行):
apt-get install lsb-release
lsb_release-d| sed's/Description:\t//'>/etc/debian_release
然后直接运行 nmon即可。
采集数据并生成报表:
采集数据:
nmon-s10-c60-f-m/home/
参数解释:
-s10每 10秒采集一次数据。
-c60采集 60次,即为采集十分钟的数据。
-f生成的数据文件名中包含文件创建的时间。
-m生成的数据文件的存放目录。
这样就会生成一个 nmon文件,并每十秒更新一次,直到十分钟后。
生成的文件名如: hostname_090824_1306.nmon,"hostname"是这台主机的主机名。
生成报表:
下载 nmon analyser(生成性能报告的免费工具):
把之前生成的 nmon数据文件传到 Windows机器上,用 Excel打开分析工具 nmon analyser v33C.xls。点击 Excel文件中的"Analyze nmon data"按钮,选择 nmon数据文件,这样就会生成一个分析后的结果文件: hostname_090824_1306.nmon.xls,用 Excel打开生成的文件就可以看到结果了。
如果宏不能运行,需要做以下操作:
工具->宏->安全性->中,然后再打开文件并允许运行宏。
自动按天采集数据:
在 crontab中增加一条记录:
0 0*** root nmon-s300-c288-f-m/home/>/dev/null 2>&1
300*288=86400秒,正好是一天的数据。
采样文件越来越大:
jackxiang@172.25.39.***:~/nmon#./nmon-s1-c33-f
jackxiang@172.25.39.***:~/nmon#
jackxiang@172.25.39.***:~/nmon# du-sh*
8.0K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du-sh*
12K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du-sh*
16K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du-sh*
20K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du-sh*
20K AD39_***_sles10_101207_1046.nmon
160K nmon
注:以上一些机器名称或系统名称,请根据实际情况自行调整及修改。