`
wangdei
  • 浏览: 374403 次
社区版块
存档分类
最新评论

Linux下面监控系统性能的工具-vmstat

阅读更多

顾名思义,vmstat是virtual memory统计工具。不过,vmstat其实不仅仅可以汇报内存使用情况,磁盘活动,cpu利用情况等也会同时显示出来,因为这些和virtual memory活动也是有关联的,或者相互影响的。

首先,什么是virtual memory?简单的说,linux支持应用程序使用比实际内存更大的内存空间,这是通过将硬盘上一个特定的分区(swap分区)或者一个特定的文件作为内存的扩展来做到的。当实际内存不够用时,linux根据某种策略,将内存中的部分空间写到交换分区以便留出应用程序运行所需要的内存空间(参考:[url=http://www.redhat.com/magazine/001nov04/features/vm/]Understanding Virtual Memory[/url] ,[url=http://www.faqs.org/docs/linux_admin/x1752.html]What is Vitual Memory[/url])。但是,一旦开始使用交换空间,磁盘活动自然就多起来,cpu利用率就降低下来(因为磁盘的速度比内存和cpu慢多了)。这就是为什么vmstat会同时显示磁盘和cpu活动情况的原因。

vmstat输出的各个字段的含义可以参考man vmstat的解释,下面就我的理解说一下vmstat常用的几种使用方式。

1 观察磁盘活动情况磁盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。

   
2 观察cpu活动情况vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。
sy:系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。

嘻哈小宝 2008-2-27 16:49

Vmstat详细解释

vmstat:报告关于内核进程,虚拟内存,磁盘,cpu的的活动状态的工具

主要有几个用法:

1.vmstat 间隔 测试数量
输出如下
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
0 0 26258 18280 0 0 0 7 20 0 127 227 64 1 2 96 1
其中:
kthr--内核进程的状态
[b]--r 运行队列中的进程数,在一个稳定的工作量下,应该少于5 (r <5)[/b]
[b]--b 等待队列中的进程数(等待I/O),通常情况下是接近0的. ([color=#ff0000]b=0[/color])[/b]
memory--虚拟和真实内存的使用信息
--avm 活动虚拟页面,在进程运行中分配到工作段的页面空间数.
[b]--[color=#ff0000]fre 空闲列表的数量.一般不少于120,当fre少于120时,系统开始自动的kill进程去释放[/color][/b]
free list
page--页面活动的信息
[b]--re 页面i/o的列表[/b]
[b]--pi 从页面输入的页([color=#ff0000]一般不大于5[/color])[/b]
[b]--po 输出到页面的页[/b]
[b]--fr 空闲的页面数(可替换的页面数)[/b]
[b]--sr 通过页面置换算法搜索到的页面数
--cy 页面置换算法的时钟频率[/b]
[b]faults--在取样间隔中的陷阱及中断数
--in 设备中断
--sy 系统调用中断
--cs 内核进程前后交换中断
cpu--cpu的使用率
--us 用户进程的时间
--sy 系统进程的时间
--id cpu空闲的时间
--wa 等待i/o的时间
[color=#ff0000]一般us+sy 在单用户系统中不大于90,在多用户系统中不大于80. [/color]
[color=#ff0000]wa时间一般不大于40.[/color][/b]

2.vmstat -s
显示系统自初始化以来的页面信息.

嘻哈小宝 2008-2-27 16:49

top是给Linux设计的。在FreeBSD VM里面的Free概念和其他OS完全不同,使用top查看Free内存对于FreeBSD来说可以说没什么意义。正确的方法是看vmstat。

# vmstat
procs       memory       page                        disk   faults       cpu
r b w      avm    fre   flt   re   pi   po   fr   sr ad0   in   sy   cs us sy id
0 2 1   270512   20316   30   0   0   0   26   5 1223 1589   98 593   1   1 99

最好使用vmstat t [n]命令,例如 vmstat 5 5,表示在T(5)秒时间内进行N(5)次采样。如果只使用vmstat,无法反映真正的系统情况。

procs:
r-->在运行的进程数
b-->在等待io的进程数(等待i/o,paging等等)
w-->可以进入运行队列但被替换的进程

memoy(以k为单位,包括虚拟内核和真实内存,正在运行或最近20秒在运行的进程所用的虚拟内存将被视为active)
avm-->活动的虚拟内存
free-->空闲的内存

pages(统计错误页和活动页,每5秒平均一下,以秒为单位给出数值)
flt-->错误页总数
re-->回收的页面
pi-->进入页面数
po-->出页面数
fr-->空余的页面数
sr-->每秒通过时钟算法扫描的页面

disk 显示每秒的磁盘操作(磁盘名字的前两个字母加数字,默认只显示两个磁盘,如果有多的,可以加-n来增加数字或在命令行下把磁盘名都填上。)

fault 显示每秒的中断数
in-->设备中断
sy-->系统中断
cy-->cpu交换

cpu 表示cpu的使用状态
cs-->用户进程使用的时间
sy-->系统进程使用的时间
id-->cpu空闲的时间

解释:
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。
分享到:
评论

相关推荐

    记一次记一次Linux性能监控

    总之,Linux性能监控是一项综合性的任务,需要结合各种工具和指标来全面了解系统运行状态,并根据应用类型和业务需求进行针对性的优化。定期监控和分析性能数据,可以预防潜在的问题,保证系统的高效稳定运行。

    Linux网络监控工具(nicstat-1.95.tar.gz)

    在实际应用中,nicstat常常与其他Linux系统监控工具,如top、iostat和vmstat等配合使用,提供全面的系统性能视图。通过定期收集和分析nicstat的输出,系统管理员可以深入理解网络流量模式,识别可能的网络性能问题,...

    经典 Linux系统性能监控 中文版

    《经典 Linux系统性能监控 中文版》是一本深入浅出的Linux性能监控指南,它针对的是那些希望理解和优化Linux系统性能的技术人员。该书虽然基于较为传统的概念和技术,但其内容扎实,阐述清晰,覆盖了从基础到进阶的...

    Linux系统性能调优-内容指南完整版

    Linux系统性能调优是针对Linux操作系统进行的一系列优化措施,以...通过深入理解Linux的内部运作,结合监控和分析工具,我们可以为特定的应用和服务定制最佳的系统调优方案,确保Linux在各种场景下都能发挥出色性能。

    Linux性能分析之CPU实战-视频课程资源网盘链接提取码下载 .txt

    - **电子书籍推荐**:《Linux性能监控与调优》、《Linux系统性能分析实战》 - **在线教程与文档**:Linux Performance Tuning Guide、The Linux Kernel Performance Tips - **社区与论坛**:LinuxQuestions.org、...

    嵌入式Linux内存与性能详解-史子旺

    书中可能还会介绍如何使用工具如`free`、`top`、`vmstat`、`sar`等监控内存使用情况,以及`strace`和`gdb`等工具调试内存问题。 在嵌入式环境中的性能优化,作者可能会讨论如何针对特定硬件优化内存配置,如内存...

    Linux系统性能的远程监控.pdf

    【Linux系统性能的远程监控】 Linux操作系统在各个领域得到了广泛应用,尤其在服务器市场占据着重要地位。为了确保服务器的稳定运行,对Linux系统的性能进行实时监控至关重要。传统的监控方法依赖于操作员定期手动...

    linux系统常用监控工具整理

    本文将详细介绍几种常用的Linux性能监控工具,帮助你更好地理解系统状态并解决潜在问题。 1. **top** `top`命令是最基本的实时性能监控工具,它显示系统总体的CPU、内存使用情况,以及每个进程的资源占用状况。你...

    Linux性能监控工具

    Linux性能监控工具是系统管理员和开发者用来理解和优化系统性能的关键工具。这些工具提供了对系统资源利用率、进程状态、网络活动以及硬件性能的深入洞察。以下是对这些工具的详细解释: 1. **top**:这是一个实时...

    计算机三级Linux系统应用与开发教程-习题答案及知识点整理

    - 性能监控:使用vmstat、iostat、top等工具监控系统性能。 - 调优实践:调整内核参数,优化磁盘I/O,提高系统响应速度。 8. **习题解答技巧**: - 题型解析:熟悉考试中的选择题、填空题、简答题和综合题的答题...

    Linux性能优化-内存篇_WEL.pdf

    同时,使用性能优化工具可以帮助我们更好地监控和优化系统性能。 5. references * 《Linux Performance Optimization》 by WEL * 《Linux内存管理》 by Linux Kernel Documentation * 《Understanding Linux ...

    各系统的资源监控工具.zip

    资源监控是IT运维中的关键环节,它允许...综上,资源监控工具在维护系统稳定、优化性能、保障安全等方面起着重要作用。不同的操作系统和环境有相应的监控工具,选择适合自己的工具并有效利用,可以显著提升IT运维效率。

    linux性能监测工具

    Linux 系统下,性能监测工具的重要性不言而喻。这些工具可以帮助我们实时监控服务器的性能,了解服务器的运行情况,从而快速地诊断和解决问题。本文将为您介绍十三个强大的 Linux 性能监测工具,这些工具将帮助您更...

    性能监控工具.zip

    在这个场景中,我们有一个名为“性能监控工具.zip”的压缩包,其中包含一个基于`vmstat`的Linux操作系统性能参数可视化监控工具。这个工具对于进行性能测试的专业人士来说非常有用,因为它能够提供清晰、直观的系统...

    linux性能监控脚本

    这些脚本是经典工具,适用于监控Linux系统的不同性能指标,如流量、磁盘大小、CPU负载和已用磁盘空间。下面将详细解释每个脚本的功能以及它们在性能监控中的作用。 1. **getflowcount.sh**:这个脚本通常用于监控...

    Linux 系统监控手册

    1. **基本监控工具**:Linux提供了一系列内置的监控工具,如`top`、`htop`、`iotop`和`vmstat`等,它们分别用于查看系统进程、CPU、内存和I/O使用情况。`mpstat`可以显示每个CPU核心的负载,而`iostat`则用于分析...

Global site tag (gtag.js) - Google Analytics