善用脚本 让你的Nagios记录系统监控日志
- 格式:doc
- 大小:45.00 KB
- 文档页数:6
nagios监控系统服务中断解决办法
Strong
举例说明:手机收到短信告警(严重告警 UPS监控已启动,UPS-总电池负载:service check timed out %),这条信息描述的大概意思是监控系统UPS监控服务检查超时,在确认UPS本身没有任何异常的情况下可以通过以下操作在监控系统上重启该服务以消除短信报警。
监控系统登录地址:127.151
登录帐号:
登录密码:
1、进入监控系统后会见到如下界面,红圈标识的就是UPS信息,点击进入
2、下图为UPS的监控服务项以及它的状态等信息。
3、进入到具体服务项后,按照图中红字标识操作即可。
4、点击commit确认disable该服务。
5、待disable该服务后,重新回到服务项详细界面,将该服务再enable即可。
6、再次点击commit确认后重启该服务。
7、再次进入UPS Detail选项,看到如下图所示,所有服务均“OK”,服务恢复正常。
P.S. 其他监控服务亦可按照此方法进行重启。
Nagios监控使用说明目录Nagios介绍 (3)监控界面说明 (3)General (3)Current Status (3)Tactical Overview (4)右上方_ Monitoring Performance: (4)左上方_Network Outages (4)下方部分 (4)Map (4)Hosts (5)Host State Information (5)Host Commands (5)Host Comments (6)Services (6)Host Groups (7)Service Groups (8)Problem (8)Quick Search (8)Reports (8)Availability (9)第一步 (9)第二步 (9)第三步 (9)第四步 (9)Trends (10)Graphs (10)Alerts (10)History (10)Summary (10)Histogram (10)Notifications (11)Event Log (11)System (11)Comments (11)Downtime (11)Process Info (12)Performance Information (12)Scheduling Queue (12)Configuration (12)Nagios介绍Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。
在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
目前,语联网12台服务器均由nagios监控,监控界面:http://119.57.18.102/nagios/监控界面说明上图是nagios的监控界面,左边栏是nagios可以监控的各个项目,点击左边栏的按钮,右边即可显示相应的监控数据。
使用Nagios监控网页1. 问题的由来对于一个网站来说,外部用户能够看到就是该网站的页面。
网站页面能否被正常访问,以及显示是否正常势必会成为网站整体水平最直接的外在表现。
那么,如何才能在第一时间检测到网页是否正常,并且给相应的技术人员发出报警来及时解决问题,而不是等接到用户抱怨的电话后才在慌忙中仓促的解决问题呢?解决这个问题的关键就是要在第一时间发现问题,发现那些不能显示的网页或是显示不正常的网页,并及时发出报警。
当然我们可以通过人工的方法去监测,但对于一些大型的、复杂的网站来说就不是很合适了,我们可以使用监控软件来解决这个问题。
我所使用的就是Nagios软件,它提供的插件(Plugins)中有相应的命令可以完成对网页的监控。
2. 如何通过Nagios解决此类问题对于Nagios、NRPE以及Nagios Plugins的安装配置网站的资料很多,在我的Blog中也有相应的文章可以参考,在这里就不再过多的说明了。
想使用Nagios监控网页状况,Nagios插件中的一个命令不得不被提及,那就是check_http,我没可以使用它来检查网页是否正常、可用。
该命令的具体说明和用法如下。
Usage: check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>][-w <warn time>] [-c <critical time>] [-t <timeout>] [-L][-a auth] [-f <ok | warn | critcal | follow>] [-e <expect>][-s string] [-l] [-r <regex> | -R <case-insensitive regex>] [-P string][-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>] [-A string][-k string] [-S] [-C <age>] [-T <content-type>]NOTE: One or both of -H and -I must be specifiedOptions:-h, --helpPrint detailed help screen-V, --versionPrint version information-H, --hostname=ADDRESSHost name argument for servers using host headers (virtual host)Append a port to include it in the header (eg: :5000)-I, --IP-address=ADDRESSIP address or name (use numeric address if possible to bypass DNS lookup).-p, --port=INTEGERPort number (default: 80)-4, --use-ipv4Use IPv4 connection-6, --use-ipv6Use IPv6 connection-S, --sslConnect via SSL. Port defaults to 443-C, --certificate=INTEGERMinimum number of days a certificate has to be valid. Port defaults to 443(when this option is used the url is not checked.)-e, --expect=STRINGString to expect in first (status) line of server response (default:HTTP/1.)If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)-s, --string=STRINGString to expect in the content-u, --url=PATHURL to GET or POST (default: /)-P, --post=STRINGURL encoded http POST data-N, --no-bodyDon't wait for document body: stop reading after headers.(Note that this still does an HTTP GET or POST, not a HEAD.)-M, --max-age=SECONDSWarn if document is more than SECONDS old. the number can also be ofthe form "10m" for minutes, "10h" for hours, or "10d" for days.-T, --content-type=STRINGspecify Content-Type header media type when POSTing-l, --linespanAllow regex to span newlines (must precede -r or -R)-r, --regex, --ereg=STRINGSearch page for regex STRING-R, --eregi=STRINGSearch page for case-insensitive regex STRING--invert-regexReturn CRITICAL if found, OK if not-a, --authorization=AUTH_PAIRUsername:password on sites with basic authentication-A, --useragent=STRINGString to be sent in http header as "User Agent"-k, --header=STRINGAny other tags to be sent in http header. Use multiple times for additional headers-L, --linkWrap output in HTML link (obsoleted by urlize)-f, --onredirect=<ok|warning|critical|follow>How to handle redirected pages-m, --pagesize=INTEGER<:INTEGER>Minimum page size required (bytes) : Maximum page size required (bytes)-w, --warning=DOUBLEResponse time to result in warning status (seconds)-c, --critical=DOUBLEResponse time to result in critical status (seconds)-t, --timeout=INTEGERSeconds before connection times out (default: 10)-v, --verboseShow details for command-line debugging (Nagios may truncate output)通过check_http的帮助我们可以清楚的了解到该命令可以为我们做什么,以及如何去做。
linux中利用nagios监控机房温度linux操作系统-电脑资料以前介绍过很多关于nagios监控服务器状态的一些文章,今天看到一朋友写到一篇章nagios监控机房温度的文章非常的不错,下面整理分享一下,有兴趣的朋友可进入参考,。
曲线救国方式,用交换机的温度来判断空调是否断电。
1、expect交互登录交换机读取温度值代码如下复制代码[root@nagios opt]# cat 123.exp#!/usr/bin/expect -fset user userset passwd passwordspawn telnet 192.168.0.254expect "Username:"send -- "$userr"expect "Password:"send -- "$passwdr"expect ""send -- "dis envr"expect ""send -- "quitr"expect eof2、添加一个nagios监控脚本代码如下复制代码[root@nagios opt]# cat /usr/local/nagios/libexec/check_temp#!/bin/bashexpect /opt/123.exp >/opt/123.logtemp=`awk '/hotspot/ {print $3}' /opt/123.log`STATE_OK=0STATE_WARNING=1STATE_CRITICAL=2STATE_UNKNOWN=3if [ "$#" == "4" ]then#Set variablesarg=${4}w=$2c=$4if [ $temp -ge $w -a $temp -lt $c ]thenecho "Warning :Room temperature $temp°C "exitstatus=$STATE_WARNINGelif [ $temp -ge $c ]thenecho "Critical :Room temperature $temp°C"exitstatus=$STATE_CRITICALelseecho "OK :Room temperature $temp°C."exitstatus=$STATE_OKfifiexit $exitstatus3、添加command代码如下复制代码[root@nagios opt]# tail -5 /usr/local/nagios/etc/objects/commands.cfg# 'check_temp' command definitiondefine command{command_name check_tempcommand_line $USER1$/check_temp -w $ARG1$ -c $ARG2$ }4、修改nrpe.cfg代码如下复制代码[root@nagios opt]# grep "temp" /usr/local/nagios/etc/nrpe.cfgcommand[check_temp]=/usr/local/nagios/libexec/check_te mp -w 30 -c 335、添加监控项目代码如下复制代码[root@nagios opt]# tail -6 /usr/local/nagios/etc/objects/localhost.cfgdefine service{use generic-servicehost_name localhostservice_description check_tempcheck_command check_nrpe!check_temp}Nagios主要功能网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin)可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)可以通过配置Nagios远程执行插件远程执行脚本远程监控支持SSH或SSL加通道方式进行监控简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)可并行服务检查能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin进行通知能够自定义事件处理机制重新激活出问题的服务或主机自动日志循环支持冗余监控包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等。
服务器性能监控工具使用指南实时追踪系统性能服务器性能监控工具使用指南-实时追踪系统性能服务器性能监控工具在现代互联网时代中扮演着至关重要的角色。
无论是个人网站还是大型企业,了解服务器的性能表现和即时监控是确保网站可靠性和稳定性的关键。
本文将为您介绍一些常用的服务器性能监控工具和它们的使用指南,帮助您实时追踪系统性能。
一、性能监控工具概述服务器性能监控工具广泛应用于服务器管理和性能分析领域,其主要目的是实时监控服务器的状态、分析性能数据、发现潜在问题并及时采取相应措施。
下面是几个常见的性能监控工具:1. NagiosNagios是一个成熟且功能强大的开源性能监控工具。
它能监控服务器的网络流量、磁盘空间、CPU利用率等关键指标,并提供报警功能,让您可以在问题发生之前及时采取措施。
2. ZabbixZabbix是另一个流行的性能监控解决方案,它具有强大的数据收集和分析能力。
通过Zabbix,您可以监控服务器的网络性能、CPU负载、内存使用情况等,并且可以根据需求自定义报警规则。
3. PrometheusPrometheus是一个开源的监控系统,特别适用于大规模分布式系统的性能监控。
它支持多种数据源,具有强大的数据存储和查询功能,使您能够灵活地获取和分析性能数据。
二、性能监控指南在使用性能监控工具之前,有几个关键的步骤需要遵循:1. 安装和配置根据监控工具的官方文档,下载并安装所需的软件包。
随后,根据特定的配置指南进行设置,并确保监控工具与您的服务器能够正常通信。
2. 确定关键指标了解您希望监控的关键指标,例如网络流量、CPU利用率等,在监控工具中设置相关的监控项。
这些指标将帮助您了解服务器的性能表现并识别潜在问题。
3. 设置报警规则根据您的需求,在监控工具中设置合适的报警规则。
这些规则将在服务器出现异常情况时发出警报,及时通知您并采取必要的措施。
4. 数据收集和分析监控工具将实时收集服务器性能数据,您可以使用工具提供的数据查询功能来分析和可视化这些数据。
使用Nagios搭建监控服务器【关于Nagios】Nagios是一款用于监控系统和网络的开源应用软件,它的模式是服务器—客户端,也就是说首先要在在一台服务器上(server)部署相应的主要套件,然后在要监控的服务器上部署客户端程序,这样server会和client通信,从而监控client端的各项资源。
Nagios 功能十分强大几乎所有的项目都可以监控,大到服务器的存活状态,小到服务器上的某一个服务(web)。
这些功能都是通过自定义插件(或者叫做脚本)来实现。
当Nagios监控到某项资源发生异常会通知到用户,你可以接入手机短信接口也可以接入邮件接口。
我们可以通过web页面来查看Nagios所监控的各项资源,默认搭建的Nagios 服务器只能监控简单的几个项目,而其他服务之类的监控项目都是由我们自己开发的插件来实现的。
【需要下载的软件】nagios-3.0.5nagios-plugins-1.4.13nrpe-2.12.tar.gzapache-2.2.11// 以上软件版本可以不一样【监控中心Server端的配置】1. 安装apache (略,请参考第16章中相关内容,只需安装,到后边再配置)2. 建立nagios账户useradd nagios3. 下载软件cd /usr/local/src/wget /downloads/linux/nagios-3.0.5.tar.gzwget /downloads/linux/nagios-plugins-1.4.13.tar.gz wget /downloads/linux/nrpe-2.12.tar.gz4. 编译安装nagioscd /usr/local/src/tar zxvf nagios-3.0.5.tar.gzcd nagios-3.0.5./configure --prefix=/usr/local/nagiosmake allmake installmake install-init # 把nagios做成一个运行脚本,使nagios随系统开机启动make install-config # 把配置文件样例复制到nagios的安装目录make install-commandmode # 给外部命令访问nagios配置文件的权限chown -R nagios:nagios /usr/local/nagios5. 编译安装nagios-pluginscd /usr/local/src/tar zxvf nagios-plugins-1.4.13.tar.gzcd nagios-plugins-1.4.13./configure --prefix=/usr/local/nagios --with-nagios-user=nagios--with-nagios-group=nagiosmake && make install查看是否安装成功的方法是:ls /usr/local/nagios/libexec/看这个目录下是否有插件文件6. 安装nrpecd /usr/local/src/tar zxvf nrpe-2.12.tar.gzcd nrpe-2.12./configure --enable-ssl --enable-command-argsmake allmake install-pluginmake install-daemonmake install-daemon-config7. 配置web接口vim /usr/local/apache2/conf/httpd.conf在最后加入以下内容:ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin<Directory "/usr/local/nagios/sbin/">AllowOverride AuthConfigOptions ExecCGIOrder allow,denyAllow from all</Directory>Alias /nagios/ /usr/local/nagios/share/<Directory "/usr/local/nagios/share">Options NoneAllowOverride AuthConfigOrder allow,denyAllow from all</Directory>8. 配置nagioscd /usr/local/nagios/etc/vim cgi.cfg把use_authentication=1 改成use_authentication=0 意思是不用用户验证9. 启动nagios在启动前先检测一下:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg如果最后显示如下,则说明配置没有问题了。
服务器监控日志分析工具推荐实时监测系统状态在现代的信息化时代,服务器的稳定运行对于企业或组织来说至关重要。
为了及时发现并解决服务器运行异常的情况,很多企业或组织都会使用服务器监控日志分析工具来实时监测系统状态。
本文将推荐几款在市场上备受好评的服务器监控日志分析工具,帮助您更好地监测服务器状态。
1. NagiosNagios是一款功能强大且广泛应用的开源服务器监控工具。
它支持对服务器的网络连接、服务器负载、存储空间等多个方面进行实时监控,并能够根据用户设定的阈值进行报警。
Nagios还可以自定义监控脚本,可以根据实际需求灵活配置监控项目。
其用户友好的图形界面和丰富的监控插件使得其成为了众多企业首选的服务器监控工具。
2. ZabbixZabbix是一款功能全面的服务器监控和日志分析工具,可以监测服务器的性能、网络流量、数据库运行等各个方面。
Zabbix可以实时获取服务器的状态信息,并通过图形界面提供直观的监控图表,帮助用户快速发现并解决服务器问题。
此外,Zabbix还提供了丰富的报警功能,能够通过邮件、短信等方式及时通知管理员,保障服务器的稳定运行。
3. SplunkSplunk是一款强大且易于使用的分布式日志分析工具。
它可以帮助用户处理和分析服务器产生的大量日志数据,并能够实时监控服务器的性能和状态。
Splunk支持多种数据源,并且能够在数据可视化方面提供更加灵活的功能,使用户能够清晰地了解服务器的运行情况。
此外,Splunk还提供了强大的搜索和查询功能,用户可以根据需求灵活地搜索和分析日志数据。
4. ELK StackELK Stack是由Elasticsearch、Logstash和Kibana三个开源软件组成的日志分析平台。
Elasticsearch用于存储和索引大量的日志数据,Logstash用于收集和处理服务器的日志数据,而Kibana则用于可视化日志数据并提供用户友好的搜索和分析接口。
Nagios监控的使用一、Nagios简介Nagios是一个监视系统运行状态和网络信息的监视系统。
Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
Nagios的主要功能特点:监视网络服务(SMTP,POP3,HTTP,NNTP,PING等)监视主机资源(进程,磁盘等)简单的插件设计可以轻松扩展Nagios的监视功能服务等监视的并发处理错误通知功能(通过email,pager,或其他用户自定义方法)可指定自定义的事件处理控制器可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等二、工作原理Nagios自身是不带任何功能的,Nagios监测服务只能是本地系统监测以及对远程主机的连通性监测。
为了使Nagios的监测服务器能够远程对被监测主机系统上的信息进行获取,比如远程系统上的进程数、磁盘空间使用状况、所运行的服务等等这些必须要登录远程主机系统上才能了解的信息的话,就必须要依靠NRPE或nsclient这个核心扩展插件程序,NRPE 作为中间的代理程序,扮演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的信息的中间人角色。
,要实现监控功能,我们必须安装插件(plugins),以及nrpe。
2.1 监控windows1. windows设置1)安装nsclient,然后在cmd命令台执行以下命令2)修改nsclient的nse.ini配置文件[modules] #去掉注释符号”;”除了CheckWMI.dll和RemoteConfiguration.d llFileLogger.dllCheckSystem.dllCheckDisk.dllNSClientListener.dll[Settings]allowd_host=192.168.2.2 #为nagios服务的IP[NSClient]port=12489 #去掉注释就可以了!3)启动nsclient服务并确认端口是否打开2. linux设置接下来我们开始配置nagios服务器里面的内容,因为nagios是模块化调用,先到配置文件打开windows相关模块。
善用脚本让你的Nagios记录系统监控日志(附vmstat详解)
摘要:Nagios是一个有着强大报警功能的系统监测工具,不过美中不足的是Nagios并没有提供记录状态和日志的功能,无法满足分析系统繁忙原因的需求。
本文提供一段脚本,可以以vmstat为基础实现这个需求,在系统繁忙时分离出日志,供系统组同事们一起分析问题。
【51CTO独家特稿】我是一名linux/unix系统工程师,平时用Nagios自动监测公司的内网开发环境及外网应用环境。
Nagios报警功能很强大,但有时我们的系统组有这个需求,特别是系统繁忙时希望能留下日志,以供分析:到底是受到了攻击,还是开发人员设置不当,亦或是运维人员改动了系统配置等。
机器少时可能问题不大,但公司的CDN服务器集群是一百多台,目前看形势还在增长,所以我想设计一个shell脚本来作Nagios的补充,在系统繁忙时分离出日志,供系统组同事们一起分析问题,得出问题的症结所在。
这里介绍下以vmstat为基础的系统监控脚本/root/monitor.sh
此脚本设计思想与功能实现:
①此脚本设计为Nagios监控补遗,Nagios是即时监控服务器状态并即时报警,但美中
不足的不能记录其状态及日志,所以设计此脚本;
②此脚本已在FreeBSD上成功调试运行,亦适用于RHEL/Centos系统;
③这里以常用生产服务器HPDL380G6(英特尔至强E5540@2.53GHz双四核)为依据,r
的阀值为4;
脚本内容如下
1.#!/bin/bash
2.while :
3.do
4.vmr=`vmstat | tail -1 | awk '{print $1}'`
5.if [ ${vmr} -gt 4 ]
6.then
7.date >> /root/monitor.txt
8.vmstat >> /root/monitor.txt
stat -anp >> /root/monitor.txt
10.ps -aux>> /root/monitor.txt
st >> /root/monitor.txt
12.tail -10 /var/log/messages >> /root/monitor.txt
13.fi
14.sleep 60
15.done
16.
此脚本可放至后台运行sh /root/monitor.sh & ,如遇CPU繁忙的情况,它会自动记载系统日志等以供分析。
这里补充下vmstat的详细信息。
这部分资料参考南非蜘蛛,如有问题可咨询本文作者抚琴煮酒:yuhongchun027@。
用vmstat监视内存使用情况
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。
它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
vmstat的语法如下:
vmstat [-V] [-n] [delay [count]]
其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。
对于vmstat输出各字段的含义,可运行man vmstat查看。
vmstat命令有四个可选标志可供使用。
如果机器有虚拟地址缓存-c标志就改变输出报告缓存刷新统计数据。
报告包括自从系统启动后每种缓存刷新全部总量。
六个缓存类型是用户,上下文,区域,段,页,部分页。
-i标志使输出变为报告中断的数量。
如果给出设备名,如d1,d2等,监控将在设备级*执行,(*注,参阅第十二章有关打开设备级监控的信息。
)并报告每个给定设备的统计信息。
修改"普通"报告来显示交换而非页面调度活动的信息。
这选项改变显示的两个字段:
si(换入)和so(换出)替代了re和mf字段。
值得注意是,interval 和count选项对-i或-s选项是非法的。
vmstat 参数详解
procs:
r-->在运行队列中等待的进程数
b-->在等待io的进程数
w-->可以进入运行队列但被替换的进程
memoy
swap-->现时可用的交换内存(k表示)
free-->空闲的内存(k表示)
pages
re--》回收的页面
mf--》非严重错误的页面
pi--》进入页面数(k表示)
po--》出页面数(k表示)
fr--》空余的页面数(k表示)
de--》提前读入的页面中的未命中数
sr--》通过时钟算法扫描的页面
disk 显示每秒的磁盘操作。
s表示scsi盘,0表示盘号
fault 显示每秒的中断数
in--》设备中断
sy--》系统中断
cy--》cpu交换
cpu 表示cpu的使用状态
cs--》用户进程使用的时间
sy--》系统进程使用的时间
id--》cpu空闲的时间
如果r经常大于4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0,且在b中的队列大于3,表示io性能不好。
由vmstat看服务器
一般VMSTAT工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。
如:
[oracle@brucelau oracle]$ vmstat 1 2
procs memory swap io system CPU
r b w swpd free buff cache si so bi bo in cs us sy id
1 0 0 0 271844 18605
2 255852 0 0 2 6 102 10 0 0 100
0 0 0 0 271844 186052 255852 0 0 0 0 104 11 0 0 100
(注:目前系统几乎空闲,并且不同操作系统VMSTAT输出内容有所不同)
目前说来,对于服务器监控有用处的度量主要有:
r(运行队列)
pi(页导入)
us(用户CPU)
sy(系统CPU)
id(空闲)
通过VMSTAT识别CPU瓶颈
r(运行队列)展示了正在执行和等待CPU资源的任务个数。
当这个值超过了CPU数目,就会出现CPU瓶颈了。
获得CPU个数的命令(LINUX环境):
cat /proc/cpuinfo|grep processor|wc –l
当r值超过了CPU个数,就会出现CPU瓶颈,解决办法大体几种:
1. 最简单的就是增加CPU个数
2. 通过调整任务执行时间,如大任务放到系统不繁忙的情况下进行执行,进尔平衡系统任务
3. 调整已有任务的优先级
通过VMSTAT识别CPU满负荷
首先需要声明一点的是,vmstat中CPU的度量是百分比的。
当us+sy的值接近100的时候,表示CPU正在接近满负荷工作。
但要注意的是,CPU满负荷工作并不能说明什么,UNIX总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化。
唯一能够确定CPU瓶颈的还是r(运行队列)的值。
通过VMSTAT识别RAM瓶颈
数据库服务器都只有有限的RAM,出现内存争用现象是Oracle的常见问题。
首先察看RAM的数量,命令如下(LINUX环境):
[root@brucelau root]#free
total used free shared buffers cached
Mem: 1027348 873312 154036 185736 187496 293964
-/+ buffers/cache: 391852 635496
Swap: 2096440 0 2096440
当然可以使用top等其他命令来显示RAM。
当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了,页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。
解决的办法有几种:
1. 最简单的,加大RAM
2. 改小SGA,使得对RAM需求减少
3. 减少RAM的需求(如:减少PGA)。