一、windows常见计数器Memory:Available Mbytes:可用物理内存数. 如果Available Mbytes的值很小(4 MB 或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。
page/sec: 表明由于硬件页面错误而从磁盘取出的页面数,或由于页面错误而写入磁盘以释放工作集空间的页面数。
一般如果pages/sec持续高于几百,那么您应该进一步研究页交换活动。
有可能需要增加内存,以减少换页的需求(你可以把这个数字乘以4k就得到由此引起的硬盘数据流量)。
Pages/sec 的值很大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所致。
page read/sec:页的硬故障,page/sec的子集,为了解析对内存的引用,必须读取页文件的次数。
阈值为>5. 越低越好。
大数值表示磁盘读而不是缓存读。
由于过多的页交换要使用大量的硬盘空间,因此有可能将导致将页交换内存不足与导致页交换的磁盘瓶径混淆。
因此,在研究内存不足不太明显的页交换的原因时,您必须跟踪如下的磁盘使用情况计数器和内存计数器:Physical Disk\ % Disk TimePhysical Disk\ Avg.Disk Queue Length例如,包括Page Reads/sec 和% Disk Time 及Avg.Disk Queue Length。
如果页面读取操作速率很低,同时% Disk Time 和Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。
但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。
要确定过多的页交换对磁盘活动的影响,请将Physical Disk\ Avg.Disk sec/Transfer 和Memory\ Pages/sec 计数器的值增大数倍。
如果这些计数器的计数结果超过了0.1,那么页交换将花费百分之十以上的磁盘访问时间。
如果长时间发生这种情况,那么您可能需要更多的内存。
Page Faults/sec:每秒软性页面失效的数目(包括有些可以直接在内存中满足而有些需要从硬盘读取)较page/sec只表明数据不能在内存的指定工作集中立即使用。
Cache Bytes:文件系统缓存(File System Cache),默认情况下为50%的可用物理内存。
如IIS5.0 运行内存不够时,它会自动整理缓存。
需要关注该计数器的趋势变化如果您怀疑有内存泄露,请监视Memory\ Available Bytes 和Memory\ Committed Bytes,以观察内存行为,并监视您认为可能在泄露内存的进程的Process\Private Bytes、Process\Working Set 和Process\Handle Count。
如果您怀疑是内核模式进程导致了泄露,则还应该监视Memory\Pool Nonpaged Bytes、Memory\ Pool Nonpaged Allocs 和Process(process_name)\ Pool Nonpaged Bytes。
Pages per second :每秒钟检索的页数。
该数字应少于每秒一页。
Process:%Processor Time: 被处理器消耗的处理器时间数量。
如果服务器专用于sql server,可接受的最大上限是80-85%Page Faults/sec:将进程产生的页故障与系统产生的相比较,以判断这个进程对系统页故障产生的影响。
Work set: 处理线程最近使用的内存页,反映了每一个进程使用的内存页的数量。
如果服务器有足够的空闲内存,页就会被留在工作集中,当自由内存少于一个特定的阈值时,页就会被清除出工作集。
Inetinfo:Private Bytes:此进程所分配的无法与其它进程共享的当前字节数量。
如果系统性能随着时间而降低,则此计数器可以是内存泄漏的最佳指示器。
Processor:监视“处理器”和“系统”对象计数器可以提供关于处理器使用的有价值的信息,帮助您决定是否存在瓶颈。
%Processor Time:如果该值持续超过95%,表明瓶颈是CPU。
可以考虑增加一个处理器或换一个更快的处理器。
%User Time:表示耗费CPU的数据库操作,如排序,执行aggregate functions等。
如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。
%Privileged Time:(CPU内核时间)是在特权模式下处理线程执行代码所花时间的百分比。
如果该参数值和"Physical Disk"参数值一直很高,表明I/O有问题。
可考虑更换更快的硬盘系统。
另外设置Tempdb in RAM,减低"max async IO","max lazy writer IO"等措施都会降低该值。
此外,跟踪计算机的服务器工作队列当前长度的Server Work Queues\ Queue Length 计数器会显示出处理器瓶颈。
队列长度持续大于4 则表示可能出现处理器拥塞。
此计数器是特定时间的值,而不是一段时间的平均值。
% DPC Time:越低越好。
在多处理器系统中,如果这个值大于50%并且Processor:% Processor Time非常高,加入一个网卡可能会提高性能,提供的网络已经不饱和。
ThreadContextSwitches/sec: (实例化inetinfo 和dllhost 进程) 如果你决定要增加线程字节池的大小,你应该监视这三个计数器(包括上面的一个)。
增加线程数可能会增加上下文切换次数,这样性能不会上升反而会下降。
如果十个实例的上下文切换值非常高,就应该减小线程字节池的大小。
Physical Disk:%Disk Time %:指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。
如果三个计数器都比较大,那么硬盘不是瓶颈。
如果只有%Disk Time比较大,另外两个都比较适中,硬盘可能会是瓶颈。
在记录该计数器之前,请在Windows 2000 的命令行窗口中运行diskperf -yD。
若数值持续超过80%,则可能是内存泄漏。
Avg.Disk Queue Length:指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。
该值应不超过磁盘数的1.5~2 倍。
要提高性能,可增加磁盘。
注意:一个Raid Disk实际有多个磁盘。
Average Disk Read/Write Queue Length:指读取(写入)请求(列队)的平均数。
Disk Reads(Writes)/s: 物理磁盘上每秒钟磁盘读、写的次数。
两者相加,应小于磁盘设备最大容量。
Average Disksec/Read: 指以秒计算的在此盘上读取数据的所需平均时间。
Average Disk sec/Transfer:指以秒计算的在此盘上写入数据的所需平均时间。
Network Interface:Bytes Total/sec :为发送和接收字节的速率,包括帧字符在内。
判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较二、Linux常见计数器CPU相关指标◆CPU utilization(System mode CPU utilization +User mode CPU utilization )——CPU利用率CPU占用率,即使用CPU的时间百分比。
该项指标的最大上限为85%,若超过此上限,则说明系统CPU成为资源瓶颈;该项指标的合理使用范围60%~70%,若指标值较低,则意味着资源的浪费。
CPU利用率=系统CPU利用率+用户CPU利用率◆Average load——平均负载上一分钟同时处于“就绪”状态的平均进程数在过去的1分钟,的平均负载一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。
例如,假设系统有两个CPU,LR监控到的平均负载为8.13,那么其每个CPU的当前任务数为:8.13/2=4.065。
这表示该系统的性能是可以接受的◆Context switches rate——上下文交换率Context Switches/sec 指计算机上的所有处理器全都从一个线程转换到另一个线程的综合速率。
当正在运行的线程自动放弃处理器时出现上下文转换,由一个有更高优先就绪的线程占先或在用户模式和特权(内核)模式之间转换以使用执行或分系统服务。
它是在计算机上的所有处理器上运行的所有线程的Thread: Context Switches/sec 的总数并且用转换数量衡量。
在系统和线程对象上有上下文转换计数器频繁的页交换将降低系统性能。
减少页交换将显著提高系统响应速度◆Interrupt rate——中断率每秒内的设备中断数内存相关指标◆Paging rate(Page-in rate +Page-out rate )——内存页交换速率每秒写入内存页和从物理内存中读出页的数目如果该值偶尔走高,表明当时有线程竞争内存。
如果持续很高,则内存可能是瓶颈◆Swap-in rate/Swap-out rate——进程入交换率/进程出交换率交换区输入输出的进程数目若交换分区进程交换频繁,也反映了系统内存资源紧张。
物理磁盘相关指标◆Disk rate——磁盘传输率物理磁盘与内存交互时的传输速度网络相关指标◆Incoming packets rate/Outgoing packets rate——数据包接收速度/数据包发送速度每秒钟传入/传出的以太网数据包数◆Incoming packets error rate/Outgoing packets errors rate——数据包接收错误率/数据包发送错误率接收/发送以太网数据包时每秒钟发生的错误数可能是网络设备(网卡、网线、路由设备等)引起,该值较大会影响响应时间,甚至超时内存相关指标◆Collision rate——冲突率每秒钟在以太网上检测到的冲突数该值过高会导致网络响应变慢三、Oracle常用自定义计数器列表序号监控名称SQL算法说明select count(*) from v$process; 取得数据库目前的进程数select value from v$parameter where name = 'processes'; 取得进程数的上限。
1、数据高速缓存区命中率SELECTround(1-SUM(PHYSICAL_READS)/(SUM(DB_BLOCK_GETS) +SUM(CONSISTENT_GETS)), 4) * 100 FROM (SELECT CASE WHEN NAME='physical reads' THEN V ALUE END PHYSICAL_READS,CASE WHEN NAME = 'db block gets' THENV ALUE END DB_BLOCK_GETS,CASE WHEN NAME = 'consistent gets' THEN V ALUE END CONSISTENT_GETS FROM V$SYSSTAT WHERE Name IN ('physical reads','db block gets','consistent gets')) (监控SGA 的命中率)命中率应大于0.90最好2、库快存命中率SELECT 100*((sum(pins-reloads))/sum(pins)) fromv$librarycache 该计数器返回当前库快存命中率3 、共享区库缓存区命中率Select round(sum(pins-reloads)/sum(pins) * 100, 2) from v$librarycache (监控SGA 中共享缓存区的命中率)命中率应大于0.994、监控SGA 中字典缓冲区的命中率Selectround(sum(gets-getmisses-usage-fixed)/sum(gets) * 100, 2) from v$rowcache (共享区字典缓存区命中率)命中率应大于0.855、检测回滚段的争用select round(sum(waits)/sum(gets) * 100, 2) fromv$rollstat 小于1%6、检测回滚段收缩次数select sum(shrinks) from v$rollstat, v$rollname wherev$n = v$n7、监控表空间的I/O读总数select sum(f.phyrds) pyr from v$filestat f, dba_data_files df where f.file# = df.file_id 监控表空间的I/O8、监控表空间的I/O块读总数select sum(f.phyblkrd) pbr from v$filestat f,dba_data_files df where f.file# = df.file_id 监控表空间的I/O9、监控表空间的I/O写总数select sum(f.phywrts) pyw from v$filestat f,dba_data_files df where f.file# = df.file_id 监控表空间的I/O10、监控表空间的I/O块写总数select sum(f.phyblkwrt) pbw from v$filestat f,dba_data_files df where f.file# = df.file_id 监控表空间的I/O11、监控SGA 中重做日志缓存区的命中率SELECTDecode(immediate_gets+immediate_misses,0,0,immediate_misses/(immediate_gets+immediate_ misses)*100) ratio2 FROM v$latch WHERE name IN ('redo copy') 应该小于1%12、监控内存和硬盘的排序比率select round(sum(case when name='sorts (disk)' then value else 0 end) / sum(case when name='sorts (memory)' then value else 0 end)*100,2) from (SELECT name, value FROM v$sysstatWHERE name IN ('sorts (memory)', 'sorts (disk)')) 最好使它小于10%。