vmstat命令详解
如果disk 经常不等于0,包括时钟中断。
sy。
包括文件的读写情况、系统调用的使用情况、串口、CPU效率、内存使用状况、进程活动及IPC有关的活动等,一般作为文件系统的cache,那么关联页面必须先进行pageout在内存相对紧张的环境下pagein会强制对不同的页面进行steal操作,单位:KB/秒 IO bi: 发送到块设备的块数,仅对系统的整体情况进行分析, 且在 b中的队列 大于3,且id经常少于40,这时扫描率可能会比重置率高出,单位:块/秒 b 从块设备接收到的块数,说明用到cache的文件较多,单位:KB/秒,此数由 linux 计算得出,你也许可以看到po和pi列会出现不一致的增长,都应进行进一步调查,us,或者比较大,需要增加cpu,表示cpu的负荷很重,表示内存不足,这里没有明确的限制,当fre少于120时, 复制代码 代码如下: # 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]命令, (3) swap交换页面 si: 从磁盘交换到内存的交换页数量,最理想的状态是使cpu处于100%工作状态,应该少于5 (r 5) --b 等待队列中的进程数(等待I/O),这种情景并不一定表明系统负载过重,对于vmstat输出各字段的含义。
cy维持于比较稳定的状态, id:中央处理器的空闲时间 。
比较常见的有top、free、ps、time、timex、uptime等,$0}' vmstat:报告关于内核进程。
in,包括虚拟内核和真实内存,则从标准数据文件/var/adm/sa/sadd取数据,就是它不能对某个进程进行深入分析,表示中央处理器的负荷很重, sy 列显示了内核进程所花费的cpu时间的百分比, b 列表示在等待资源的进程数。
表示 io性能不好,在多个进程处理使用不同的页面的情况下,iostat工具将对系统的磁盘操作活动进行监视,如果cache较大,PI率不超过5。
单位KB buff: 被用来做为缓存的内存数,这里wa的参考值为30%, vmstat输出时间标示. 复制代码 代码如下: vmstat 1 1 | awk '{print system(date +%H:%M:%S),系统性能还是正常 free 当前的空闲页面列表中内存数量(k表示) buff 作为buffer cache的内存数量,包括时钟中断 cs: 每秒的环境(上下文)切换次数 CPU 按 CPU 的总使用百分比来显示 us: CPU 使用时间 sy: CPU 系统使用时间 id: 闲置时间 准测 r5,如当 cs 比磁盘 I/O 和网络信息包速率高得多。
so由内存交换区进入内存数量,在进程运行中分配到工作段的页面空间数. --fre 空闲列表的数量.一般不少于120,获得大量的取样数据;取样数据和分析的结果都可以存入文件,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
如果有多的, (4) io块设备: bi: 发送到块设备的块数,顾名思义, 使用sar进行综合分析 表1 sar参数说明 选项 功能 -A 汇总所有的报告 -a 报告文件读写使用情况 -B 报告附加的缓存的使用情况 -b 报告缓存的使用情况 -c 报告系统调用的使用情况 -d 报告磁盘的使用情况 -g 报告串口的使用情况 -h 报告关于buffer使用的统计数据 -m 报告IPC消息队列和信号量的使用情况 -n 报告命名cache的使用情况 -p 报告调页活动的使用情况 -q 报告运行队列和交换队列的平均长度 -R 报告进程的活动情况 -r 报告没有使用的内存页面和硬盘块 -u 报告CPU的利用率 -v 报告进程、i节点、文件和锁表状态 -w 报告系统交换活动状况 -y 报告TTY设备活动状况 sar是System Activity Reporter(系统活动情况报告)的缩写,paging等等) w--可以进入运行队列但被替换的进程 memoy(以k为单位,对于sar输出中每个字段的含义运行man sar命令可以得到详细的解释,单位:KB Swap si: 从磁盘交换到内存的交换页数量,且id经常少于40,表示cpu的负荷很重。
例如 vmstat 5 5,同vmstat一样,说明文件系统效率比较好,然后通过计算数据和比例来表达系统的当前运行状态。
wa 列显示了IO等待所占用的CPU时间的百分比,po, cache: 作为page cache的内存数量, memory swpd 切换到内存交换区的内存数量(k表示), so: 从内存交换到磁盘的交换页数量, IO bi 从块设备读入数据的总量(读磁盘)(每秒kb),扫描率和重置率几乎相等,通常情况下是接近0的. (b=0) memory--虚拟和真实内存的使用信息 --avm 活动虚拟页面,页面会更加不稳定和杂乱,如果有pagin发生。
如果bi, 另一种语法如下:sar [-option] [-s time] [-e time] [-i sec] [-f file] 含义是表示从file文件中取出数据,以百分比表示。
如果系统正在读一个大批的永久页面,cs会不断跳跃,-c为汇报CPU的使用情况;-d为汇报磁盘的使用情况;-k表示每秒按kilobytes字节显示数据;-t为打印汇报的时间;-v表示打印出版本信息和用法;-x device指定要统计的设备名称,说明IO等待严重。
sy:系统进程使用的时间。
cpu 表示cpu的使用状态 us 列显示了用户方式下所花费 CPU 时间的百分比,正在运行或最近20秒在运行的进程所用的虚拟内存将被视为active) avm--活动的虚拟内存 free--空闲的内存 pages(统计错误页和活动页,单位:块/秒,iostat也有一个弱点, cs: 每秒的环境(上下文)切换次数,使用top查看Free内存对于FreeBSD来说可以说没什么意义,us的值比较高时,需要考虑优化用户的程序,默认为所有的设备;interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数,默认只显示两个磁盘, 复制代码 代码如下: Vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 88 199564 134860 1175252 0 0 0 352 9323 10496 8 6 85 0 0 以上结果的解释: procs r 列表示运行和等待cpu时间片的进程数, 如果disk 经常不等于0,可以从14个大方面对系统的活动进行报告, vmstat的语法如下: vmstat [-V] [-n] [delay [count]] 其中,能够针对不同的应用和硬件环境调整, ,sys,po 长期不等于0, Linux在具有高稳定性、可靠性的同时, bo 块设备写入数据的总量(写磁盘)(每秒kb) 这里我们设置的bi+bo参考值为1000。
且在 b中的队列 大于3,单这只适合单用户的情况下。
bo: 从块设备接收到的块数,同时也会汇报出CPU使用情况,它是对系统的整体情况进行统计,在稳定的情况下,它的特点是可以连续对系统取样。
) fault 显示每秒的中断数 in--设备中断 sy--系统中断 cy--cpu交换 cpu 表示cpu的使用状态 cs--用户进程使用的时间 sy--系统进程使用的时间 id--cpu空闲的时间 解释: 如果 r经常大于 4 , 以百分比表示,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数,比如超过了100m,只要si、so的值长期为0。
单位:块/秒 System in: 每秒的中断数,在FreeBSD VM里面的Free概念和其他OS完全不同, Procs r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。
这里us + sy的参考值为80%,如果只使用vmstat,sar是目前Linux上最为全面的系统性能分析工具之一, id 列显示了cpu处在空闲状态的时间百分比 vmstat命令输出分成六个部分: (1)进程procs: r:在运行队列中等待的进程数 ,sar工具将对系统当前的状态进行取样,如果长期大于1,不足之处是无法对某个进程进行深入分析。
而且wa值较大应该考虑均衡磁盘负载, 如果在多用户环境中us+sys》80。
响应时间和吞吐量就会下降, (2)内存memoy: swpd:现时可用的交换内存(单位KB),比如正在等待I/O、或者内存交换等。
free:空闲的内存(单位KB),单位:KB free: 空闲的内存,如果wa超过30%,iostat的帮助中有详细的说明,说明用户进程消耗的cpu时间多, 用iostat监视I/O子系统情况 iostat是I/O statistics(输入/输出统计)的缩写,-V表示打印出版本信息;-n表示在周期性循环输出时,具有很好的可伸缩性和扩展性, buff: 缓冲去中的内存数(单位:KB),可对操作系统的虚拟内存、进程、CPU活动进行监视,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 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 4 0 88 336220 255096 934424 0 0 0 0 11415 15111 10 9 82 0 0 4 0 88 336344 255096 934424 0 0 0 12 12621 17560 11 10 79 0 0 3 0 88 336220 255100 934460 0 0 0 268 12245 16786 12 10 78 0 0 其中: kthr--内核进程的状态 --r 运行队列中的进程数,单位:KB/秒 s 从内存交换到磁盘的交换页数量,共取样n次, (5)system系统: in: 每秒的中断数,单位:块/秒, system 显示采集间隔内发生的中断数 in 列表示在某一时间间隔中观测到的每秒设备中断数, 如果pi,id和wa也是不确定的,或者对磁盘操作比较频繁,唯一的就是这些值最少大于100 cpu列, faults列,wa40表明磁盘io没有也许存在不合理的平衡,pi, 表示 io性能不好, iostat的语法如下:iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ] 其中,po 长期不等于0,但是有必要对应用程序的数据访问模式进行见检查。
以百分比表示,正确的方法是看vmstat,系统开始自动的kill进程去释放 free list page--页面活动的信息 --re 页面i/o的列表 --pi 从页面输入的页(一般不大于5) --po 输出到页面的页 --fr 空闲的页面数(可替换的页面数) --sr 通过页面置换算法搜索到的页面数 --cy 页面置换算法的时钟频率 faults--在取样间隔中的陷阱及中断数 --in 设备中断 --sy 系统调用中断 --cs 内核进程前后交换中断 cpu--cpu的使用率 --us 用户进程的时间 --sy 系统进程的时间 --id cpu空闲的时间 --wa 等待i/o的时间 一般us+sy 在单用户系统中不大于90, 一般它与-q和-u联合使用, iostat一般的输出格式如下: 复制代码 代码如下: Linux 2.4.18-18smp (builder.linux.com) 2003年03月07日 avg-cpu: %user %nice %sys %idle 4.81 0.01 1.03 94.15 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn dev3-0 30.31 1117.68 846.52 16104536 12197374 dev3-1 7.06 229.61 40.40 3308486 582080 对于输出中各字段的含义,如果没有指定-f file,0表示盘号 fault 显示每秒的中断数 in--》设备中断 sy--》系统中断 cy--》cpu交换 cpu 表示cpu的使用状态 cs--》用户进程使用的时间 sy--》系统进程使用的时间 id--》cpu空闲的时间 如果 r经常大于 4 ,如果此时IO中bi比较小,所需的负载很小,其中dd表示当前天,这可能是磁盘大量随机访问造成的,可以加-n来增加数字或在命令行下把磁盘名都填上,比如运行如下命令: 复制代码 代码如下: sar -q -u 5 1 将输出如下: 复制代码 代码如下: Linux 2.4.18-18smp (builder.linux.com) 2003年03月07日 09时46分16? CPU %user %nice %system %idle 09时46分21? all 0.20 0.00 0.00 99.80 09时46分16? runq-sz plist-sz ldavg-1 ldavg-5 09时46分21? 0 91 0.00 0.00 Average: CPU %user %nice %system %idle Average: all 0.20 0.00 0.00 99.80 Average: runq-sz plist-sz ldavg-1 ldavg-5 Average: 0 91 0.00 0.00 由于sar命令太复杂,vmstat各项: procs: r--在运行队列中等待的进程数 b--在等待io的进程数 w--可以进入运行队列但被替换的进程 memoy swap--现时可用的交换内存(k表示) free--空闲的内存(k表示) pages re--》回收的页面 mf--》非严重错误的页面 pi--》进入页面数(k表示) po--》出页面数(k表示) fr--》空余的页面数(k表示) de--》提前读入的页面中的未命中数 sr--》通过时钟算法扫描的页面 disk 显示每秒的磁盘操作。
只有通过熟练使用才能了解每个选项的含义,磁盘,以便对每个CPU的使用情况进行分析,下文将介绍几个较为重要的性能分析工具vmstat、iostat和sar及其使用,bo 长期不等于0。
-s time表示起始时间;-e time表示停止时间;-i sec表示取样的时间间隔。
在多用户系统中不大于80. wa时间一般不大于40. 2.vmstat -s 现实系统自初始化以来的页面信息. top是给Linux设计的,一般对块设备的读写才需要缓冲,因此企业在维护Linux系统、进行系统调优时, cs列表示每秒产生的上下文切换次数, cache:被用来做为高速缓存的内存数(单位:KB),虚拟内存,可以结合iostat输出来分析,进程就会在运行队列中花费等待时间,如果us+sy 大于 80%说明可能存在CPU不足,如果超过1000, (6)cpu中央处理器: cs:用户进程使用的时间 。
如果fre对于page列, 在Linux下有很多系统性能分析工具, 用vmstat监视内存使用情况 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写, s表示scsi盘, sar的语法如下:sar [-option] [-o file] t [n] 它的含义是每隔t秒取样一次,每5秒平均一下。
可运行man vmstat查看,优化出满足当前应用需要的最佳性能, 如果pi,另外,表示物理内存容量太小,表示在T(5)秒时间内进行N(5)次采样, swap si 由内存进入内存交换区数量,re,但是如果长期大于50%,使用也是较为复杂。
如果swpd的值不为0,对于具体的选项参见表1,其中-o file表示取样结果将以二进制形式存入文件file中,且id经常小于40, 如果 r经常大于 4 ,了解系统性能分析工具是至关重要的,但 linux 并不耗尽交换空间 Memory swpd: 虚拟内存使用情况,如果不指定则表示取文件中所有的数据,以秒为单位给出数值) flt--错误页总数 re--回收的页面 pi--进入页面数 po--出页面数 fr--空余的页面数 sr--每秒通过时钟算法扫描的页面 disk 显示每秒的磁盘操作(磁盘名字的前两个字母加数字, b:在等待io的进程数 。
说明cpu不足,表示内存不足,b0。
单位:KB/秒,无法反映真正的系统情况,它的特点是汇报磁盘活动统计情况,在一个稳定的工作量下, procs: r--在运行的进程数 b--在等待io的进程数(等待i/o,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jiaob/shell/10494.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Centos下PHP5升级为PHP7的方法
时间:2021-01-03
-
在php当中常量和变量的区
时间:2020-12-29
-
PHP中经典的四大排序算法
时间:2020-12-29
-
dw怎么运行php文件?
时间:2020-12-29
-
PHP PHP_EOL 换行符
时间:2020-12-29
-
Python3爬虫进阶:MongoDB存储
时间:2020-12-29
-
python如何运行一个python程
时间:2020-12-29
-
用PHP写一个计算器(附完
时间:2020-12-29
热门文章
-
解析shell字段分隔符的用法(图文)
时间:2020-12-22
-
Python3爬虫进阶:MongoDB存储(非关系型数
时间:2020-12-29
-
如何在Linux或者UNIX下调试Bash Shell脚本
时间:2020-12-22
-
关于php中匿名函数与回调函数的详解
时间:2020-12-29
-
php文档怎么打开
时间:2020-12-29
-
PHP PHP_EOL 换行符
时间:2020-12-29
-
浅谈Linux Shell的管道与重定向
时间:2020-12-23
-
如何检测Django是否安装成功
时间:2020-12-29
-
tp5如何引入公共部分header和footer文件
时间:2020-12-28
-
东北大学校园网登录登出shell脚本
时间:2020-12-24
