wangmeng814 发表于 2009-1-20 10:03:13

性能监控数据库服务器遇到的一点问题,VMSTAT这个命令有高手熟悉不??

我是用VMSTAT 命令监控数据库服务器的 里面有几个值 不太明白 FR/SR 是什么意思? 这个值一般都是0但是有时候会很大!说明什么?
VMSTAT 1
r        b        avm        fre        re        pi        po        fr        sr        cy        in        sy        cs        us        sy
5        0        2472300        1361352        0        0        0        4905        44499        0        3548        20532        5092        86        14
6        0        2472294        1361336        0        0        0        13036        132721        0        3246        18860        5249        76        24
3        0        2472302        1361457        0        0        0        11825        100960        0        2400        13328        3829        79        21

[ 本帖最后由 wangmeng814 于 2009-1-20 10:25 编辑 ]

wangmeng814 发表于 2009-1-20 10:06:40

网上查了一下说 如果为0的话是好事,说明内存没问题
说明你的内存请求没有超过可用的物理内存,系统不用再去检索当前全部的物理内存(sr),也不用将检索出来的物理内存(sr)能够释放出来分配(fr), 好事情。
现在的机器有足够的内存

那这里FR SR 不为0 就是 内存溢出??

archonwang 发表于 2009-1-20 10:08:25

贴份资料给你参考


vmstat 命令详解
vmstat 是用来实时查看内存使用情况,反映的情况比用top直观一些.
如果直接使用,只能得到当前的情况,最好用个时间间隔来采集
vmstat T 其中T用具体的时间标示,单位是 秒 例如:vmstat 5 表格每隔5秒采集一次.
这样在刷新的时候就能比较系统的看到那个列不正常的
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命令列出的属性详解
2007-03-13 17:21:02 / 个人分类:Linux base

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性能不好。
1.) 如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU.
2.) 如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢.
3.) 如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us) 系统则面临着CPU资源的短缺.
解决办法:
当发生以上问题的时候请先调整应用程序对CPU的占用情况.使得应用程序能够更有效的使用CPU.同时可以考虑增加更多的CPU.关于CPU的使用情况还可以结合mpstat,ps aux topprstat –a等等一些相应的命令来综合考虑关于具体的CPU的使用情况,和那些进程在占用大量的CPU时间.一般情况下,应用程序的问题会比较大一些.比如一些SQL语句不合理等等都会造成这样的现象.


内存问题现象:
内存的瓶颈是由scan rate (sr)来决定的.scan rate是通过每秒的始终算法来进行页扫描的.如果scan rate(sr)连续的大于每秒200页则表示可能存在内存缺陷.同样的如果page项中的pi和po这两栏表示每秒页面的调入的页数和每秒调出的页数.如果该值经常为非零值,也有可能存在内存的瓶颈,当然,如果个别的时候不为0的话,属于正常的页面调度这个是虚拟内存的主要原理.

解决办法:
1.调节applications & servers使得对内存和cache的使用更加有效.
2.增加系统的内存.
3. Implement priority paging in s in pre solaris 8 versions by adding line "set priority paging=1" in
/etc/system. Remove this line if upgrading from Solaris 7 to 8 & retaining old /etc/system file.
关于内存的使用情况还可以结ps aux topprstat –a等等一些相应的命令来综合考虑关于具体的内存的使用情况,和那些进程在占用大量的内存.一般情况下,如果内存的占用率比较高,但是,CPU的占用很低的时候,可以考虑是有很多的应用程序占用了内存没有释放,但是,并没有占用CPU时间,可以考虑应用程序,对于未占用CPU时间和一些后台的程序,释放内存的占用.

wangmeng814 发表于 2009-1-20 10:09:18

谢谢 很全我先顶 慢慢看

wangmeng814 发表于 2009-1-20 10:12:30

如果scan rate(sr)连续的大于每秒200页则表示可能存在内存缺陷
那如果 我只是其中有3秒钟出现 例如150190的大数值! 是然后马上变成0 算不算内存有问题??

honsongj 发表于 2009-1-20 10:33:06

不熟这个

archonwang 发表于 2009-1-20 10:39:11

回复 5# 的帖子

这个还需要结合其他的参数来判断,但如果是连续长时间出现较大数值,往往可能存在问题。

wangmeng814 发表于 2009-1-20 10:42:41

发觉做性能测试 忒难了。。。。。哎 书到用时方恨少啊

cainiaoxiao 发表于 2009-1-20 14:38:07

:victory:

hlq0514 发表于 2010-10-18 16:43:30

学习了
页: [1]
查看完整版本: 性能监控数据库服务器遇到的一点问题,VMSTAT这个命令有高手熟悉不??