系统性能监控工具

时间:2022-11-13 23:16:21

 

本文介绍基于unix系统的主要监控工具。

一:监控的基本知识

l  监控CPU使用率

只要cpu使用率没有达到100%,就表示系统还有能力支持更多的活动。Cpu使用率达到峰值很常见(例如90%),但目的是要找出那些进程过分使用了cpu。Cpu的使用需要注意一下3个问题:

1.        用户使用与系统使用之比。如果系统使用cpu比例过大,则需要仔细检查这个问题。

2.        等待分配资源的进程(队列中)过大,可能预示着cpu资源不足。

3.        环境切换太多或中断太多,会导致cpu使用率降低。

l  管理内存

当系统出现性能问题时,首先要查看内存。内存不足时,系统会发生过多的交换。监控内存时,需要关注以下3个问题:

1.        页进与页出。当内存不足时,页面需要从内存调度到磁盘。过多的页进页出说明内存不足。

2.        换入与换出。交换的统计数据可表示内存设置的合理与否。

3.        活动与非活动页。如果非活动页很少,可能表明物理内存不足。

l  监控磁盘存储

磁盘监控要注意两点,磁盘空间不能用尽,且是否出现由于较慢的磁盘读写而导致瓶颈。

1.        检查可用空间。提前规划或增加磁盘空间,防止出现剩余空间不够。

2.        I/O负荷。监控磁盘运转频度是否在正常范围内。

l  监控带宽

简单的网络统计数据,如接受与发送字节数,有助于找出网络问题。较高的网络包碰撞率和过多的数据传输错误可能会导致瓶颈。

二:监控工具

l  ps

例如查看pmon进程是否存在:ps –ef | grep ora_pmon

系统性能监控工具

查看db2的相关进程(aix)

系统性能监控工具

l  vmstat

系统性能监控工具

从图中可以看出,vmstat监控内核线程状态、内存、分页、故障和cpu使用百分比。

重点关注的参数如下:

Kthr—r:执行队列。当前系统由8颗cpu,采样期间队列数为3,低于8。如果这个数字大于cpu个数,则等待的队列数越大,越可能造成性能问题。假如有16个cpu,那么r值为12,倒也没什么关系,表示有12个进程正在等待使用cpu。但是如果只有2个cpu,r值却为12,则表示系统cpu受限,大量的进程正在等待cpu。

Memory—avm:活动虚拟页面,单位是4K。此例中为3331936个页面,共计12.7GB。avm应该总比ram小,代表使用的物理内存+paging的总和。当大于物理内存时,表明出现页面调度。

Memory—fre:空闲内存页面数,单位4K。此例中为61MB。最小页面数由minfree参数决定。并不是指剩余内存,因为已经使用过的内存会被cache或buffer住。

Page—pi、po:从page置换到内存和从内存置换到page的大小。参考值不能大于5,大于5说明可能内存不足。

Cpu—us、sy:用户占用cpu的百分比、系统占用cpu百分比。之和长期大于80%,可能预示cpu不足。另若系统占用cpu总大于用户进程使用的cpu,则需要注意。

Cpu—wa:IO等待cpu时间。长期高于50,则表示IO太忙。若由分页交换频繁引起,则说明内存不足;若不是,则考虑优化应用与磁盘设备。

l  iostat

系统性能监控工具

如果iowait超过25,则表示等待IO所花费的时间占CPU的百分比是25%,系统存在IO或者硬盘瓶颈。

高iowait可能有以下几种原因:

内存不够,造成频繁的swap空间交换数据,导致IO瓶颈。

硬盘上面的数据分布不合理。

数据的fragment不合理。

l  sar

系统性能监控工具

观察cpu的消耗情况。Iowait持续过高说明等待IO的时间过高。

l  netstat

系统性能监控工具

总结:当对oracle数据库进行性能调优时,首先就是考虑到数据库服务器的性能。

1:vmstat主要关注2点,1为r即队列数,如果队列数相对于逻辑cpu数量太过大的话,说明cpu繁忙,可能不够用;

                                             2为cpu使用率。cpu使用率长期达到90%,cpu面临不足。且如果系统占用cpu比例过高,则要查明原因。

2:vmstat中的pi、po以及iostat中iowait百分比,可以反映出IO读写情况。如果这些值分别高于5和25,说明内存不足,导致内存分页,io瓶颈。

3:netstat可以找出特定端口下的连接以及状态,起到辅助功能。

4:ps可以找出某些进程,对于特定情况下,可以通过kill杀掉某些进程。