对于CPU的使用情况,可以通过vmstat命令查看:
#vmstat 1 5 每个一秒显示一次,共显示10次系统状况。
System Configuration: lcpu=16 mem=31488MB
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
4 2 3127273 3272 0 4 8 338 937 0 2357 22962 1561 13 1 83 3
其中各项含义如下。
kthr:内核线程状态在采样间隔期间每秒钟更改一次。
r:当前在队列中等待执行的线程数,如果这个数值经常非常大(例如达到2~5倍以上的CPU数),就说明系统中等待执行的线程比较多,可能存在性能问题。注意,对于大型应用系统,需要执行的线程非常多,所以等待队列中经常有个位数的数字是很正常的情况,并不是说只有等待队列永远是0,才说明系统的CPU满足了要求,实际上0等待队列一般说明发生了“大马拉小车”的情况。
b:当前队列中处于等待状态的线程,由于IO(存储、网络)操作未完成,无法继续执行,必须挂起,此时CPU可以切换到另外一个线程操作。显然,如果有很多(大于2~5倍CPU数)线程处于b状态,系统就可能有IO瓶颈。
内存:关于使用虚拟内存和实内存的信息。如果虚拟页已经被访问的话,虚拟页可以被认为是活动的。一页为 4096 个字节。
avm:Active Memory,而不是available memory!这是经常被理解错误的一项,它等于当前使用的物理内存和使用的交换区的总和减去作为文件系统缓存的物理内存,单位为4KB,即一个内存页。
fre:空闲的物理内存,单位为4KB。
pi:在vmstat两次检查间隔期间,系统将磁盘交换区读回物理内存页的数量。通常多是内存不够的表现。
po:在vmstat两次检查间隔期间,系统将物理内存页交换到磁盘的数量。越多代表系统内存越紧张,但偶尔出现的pi, po并不能说明任何问题,而且通常系统大量文件操作(例如文件系统备份/恢复,tar操作等),往往伴随着大量的pi, po,这都是正常现象。
页:关于缺页故障和调页活动的信息。这些是间隔的平均值,以秒为单位给出。
re:pi/po,数值长期趋近于1,并且pi, po都很大,说明系统可能有thrash(抖动)的现象,即刚交换出去的内存马上又需要使用,必须交换回来,物理内存可能严重不足。
fr:代表在此段时间内,有多少不使用的物理内存被释放,可能是内存页被程序释放,也可能是已经将其内存交换到了磁盘。
sr:代表在此段时间内,由于有内存使用申请,而物理内存空闲不足,进行有多内存页搜索被检查的页数。此数值越大,代表内存申请越多,也就是内存需要量比较大。
cy:进行内存搜索、清理消耗的时钟周期,此数值越大,说明内存越紧张,操作系统用了过多的时间进行内存清理。当然,也有可能系统内的程序调度(起/停)过于频繁。无论如何,cy多大都说明当前内存使用、管理方面需要仔细分析。
故障:采样间隔平均每秒的捕获和中断率。
in:中断次数,在此段时间内由各种不同原因产生的中断次数,中断的原因可能是CPU处理时间片到期、设备IO产生中断等。vmstat –i可以查看更详细的关于中断的信息
cs:上下文切换,对于一个CPU,当正在执行的线程与即将执行的线程不是同一个的时候,就会产生一个cs(Content Switch)。有三种情况会导致cs:当前线程等待资源(磁盘/网络IO完成),线程自己要求sleep或等待资源解锁;更高优先等级线程要求CPU;此线程用尽了10ms时间片。由于自然情况下,每CPU可以产生100次线程切换(10ms一次),所以cs次数除以vmstat的间隔时间,再除以CPU个数可以用来判断系统繁忙的指标之一,这个数字如果远远高于100(通常是10~20倍以内的比例,即每个CPU对应1000~2000次cs都算正常),则可能有CPU瓶颈。对于最新的P5、P6系列CPU,由于支持SMT,一个物理CPU同时支持2个线程,则可以考虑再除2或1.5,以进行合理的判断。
sy:(在faults区的sy)此时间段内系统调用次数,用户程序执行过程中发出系统执行调用申请,以便普通用户请求核心操作,例如进行磁盘IO等操作。
Cpu:CPU 使用时间故障百分比。
us:系统中用户操作所占CPU时间百分比。
sy:(在cpu区的sy)系统中系统调用所占CPU时间百分比。
id:系统中CPU的空闲时间百分比。
wa:系统等待磁盘IO所占时间百分比(此时CPU闲置)。
在进行了CPU共享(需要POWER 5、6机型,并购买微分区功能才支持)的机器上,还有另外两项,pc和ec,pc代表实际分配给此分区的CPU数量(可能是小数,以1%为单位),而ec代表授权此分区使用CPU的数量与实际使用的比例(超出100时说明当前分区临时抢占使用了超过了指派给它的CPU资源)。
===============================================================
===================================================================
在Load average 高的情况下如何鉴别系统瓶颈。是CPU不足,还是io不够快造成? 或是内存不足?
一:查看系统负载vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 496056 889316 4065748 0 0 9 41 55 51 0 0 99 1 0
1 : procs
procs
r b
0 0
r :运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b :在等待资源的进程数,比如正在等待I/O、或者内存交换等。
2 : memory
-----------memory----------
swpd free buff cache
0 496056 889316 4065748
swpd :切换到内存交换区的内存数量(k表示)。
如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free :当前的空闲页面列表中内存数量(k表示)
buff :作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache :作为page cache的内存数量,一般作为文件系统的cache,
如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。
3 : swap
---swap--
si so
0 0
si :由内存进入内存交换区数量。
so :由内存交换区进入内存数量。
4 : IO
-----io----
bi bo
9 41
bi :从块设备读入数据的总量(读磁盘)(每秒kb)。
bo :块设备写入数据的总量(写磁盘)(每秒kb)
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。
5 : system 显示采集间隔内发生的中断数
--system--
in cs
55 51
in :在某一时间间隔中观测到的每秒设备中断数。
cs :每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。
6 : cpu 表示cpu的使用状态
-----cpu------
cs us sy id wa st
51 0 0 99 1 0
us :用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy :内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
wa :IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,
这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id :cpu处在空闲状态的时间百分比
相关推荐
### vmstat详解:深入理解Unix/Linux系统性能监控 #### 标题解读:vmstat详解 `vmstat`是Unix及类Unix系统(包括Linux)中一个重要的系统性能监控工具,用于报告虚拟内存统计信息,同时也提供了关于进程、内存、...
AIX的vmstat命令详解 vmstat命令是AIX操作系统中一个非常重要的命令,用于报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息。通过vmstat命令生成的报告,可以用于平衡系统负载活动。 1.(vmstat命令概述...
vmstat 命令详解 vmstat 命令是 Linux 系统中用于显示系统当前的进程、内存、交换空间、IO 设备、系统和 CPU 使用情况的命令。下面是 vmstat 命令的详细解释: procs * r: 等待运行的进程数 * b: 处在非中断睡眠...
### vmstat命令详解 #### 一、概述 `vmstat` 是一个用于监控系统虚拟内存统计信息的强大工具,它可以提供有关系统活动的信息,包括进程、内存、交换、块IO、系统调用等统计信息。通过观察这些数据,可以帮助我们更...
vmstat命令详细说明,用于系统监控和性能测试使用
本文将重点介绍三个关键的性能分析工具:vmstat、iostat和sar。 首先,vmstat是Virtual Memory Statistics的简称,主要用于监控系统的虚拟内存、进程和CPU活动。通过vmstat,我们可以获取关于系统整体运行状态的...
"vmstat命令详解" vmstat 命令是 UNIX 平台下一个非常有用的性能监测工具,能够实时监测 Linux 系统的 CPU、内存、IO 等性能参数。通过分析 vmstat 命令的输出结果,我们可以快速地了解系统的性能瓶颈,从而进行...
#### 二、`vmstat`输出详解 `vmstat`的输出结果分为两部分:第一行显示自系统启动以来的平均值;后续行则按照指定的时间间隔实时更新统计数据。下面我们逐一解读输出字段: 1. **procs** - `r`: 正在运行或等待...
Linux vmstat命令详解和使用实例 vmstat 命令是 Linux 系统中的一种低开销的系统性能观察方式,通过它可以了解系统的整体情况。但是,它无法对某个进程进行深入分析。vmstat 工具可以提供对系统的整体情况进行统计...
AIX上的vmstat命令报告输出解释和命令基本用法 vmstat命令是AIX操作系统中的一种性能监控工具,主要用来报告内核线程、虚拟内存、磁盘、Traps、CPU活动的统计数据。下面是vmstat命令的报告输出解释和命令基本用法。...
UNIX 平台下 vmstat 与 iostat 输出结果详解 vmstat 和 iostat 是 UNIX 平台下两个常用的性能监测命令,vmstat 主要用于显示虚拟内存、进程、磁盘 I/O、CPU 使用率等信息,而 iostat 主要用于显示磁盘 I/O 情况。这...
vmstat命令是常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix喜爱的命令,一个是Linux/Unix都支持...
### sar与vmstat命令知识点详解 #### 一、sar命令详解 `sar`(System Activity Reporter)是一个强大的系统性能分析工具,它能够收集并报告系统的各种活动数据,包括CPU使用率、内存使用情况、磁盘I/O操作等,是...
### 各种UNIX平台下vmstat与iostat输出结果详解 #### vmstat工具概述 `vmstat` 是一个用于报告虚拟内存统计信息的强大工具,主要用于监控系统的虚拟内存子系统及进程、内存、交换、块I/O、系统及CPU活动等。通过...
如果你想动态的了解一下系统资源的使用状况,以及查看当前系统中到底是哪个环节最占用系统资源,就可以使用 vmstat 命令。 vmstat命令,是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用...
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都...