Mem:表示物理内存统计
-/+ buffers/cached:表示物理内存的缓存统计
Swap:表示硬盘上交换分区的使用状况,这里咱们不去关心。
系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存b并非第一行free 标记的 16936Kb,它仅表明未被分配的内存。算法
第1行 Mem: total:表示物理内存总量。
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,通常系统不会用到,这里也不讨论(swap是个什么东东??)。浏览器
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量(buffers与cached啥区别?), total = used + free 第2行 -/+ buffers/cached: used:也就是第一行中的used - buffers-cached 也是实际使用的内存总量。
free:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。 free 2= buffers1 + cached1 + free1 //free2为第二行、buffers1等为第一行缓存
补充说明:free指令会显示内存的使用状况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。服务器
参 数:
-b 以Byte为单位显示内存使用状况。
-k 以KB为单位显示内存使用状况。
-m 以MB为单位显示内存使用状况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用情况。
-t 显示内存总和列。
-V 显示版本信息。babel
统计信息内容解释:网络
第一行是任务队列信息,同 uptime 命令的执行结果。app
第二行为进程信息。
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 中止的进程数
zombie 僵尸进程数socket
第三行为CPU信息。
us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬件中断
si 软件中断工具
最后两行为内存信息。oop
Mem:total 物理内存总量
used 使用的物理内存总量
free 空闲内存总量
buffers 用做内核缓存的内存量
swap是个什么东东?:total 交换区总量
used 使用的交换区总量
free 空闲交换区总量
cached 缓冲的交换区总量
进程信息区
默认状况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。
PID 进程id
USER 进程全部者的用户名
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态:
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/中止
Z=僵尸进程
%CPU 上次更新到如今的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写, 是实时系统监控工具。该命令经过使用knlist子程序和/dev/kmen伪设备驱动器访问这些数据,输出信息直接打印在屏幕。vmstat反馈的与CPU相关的信息包括:
1.多少任务在运行
2.CPU使用的状况
3.CPU收到多少中断
4.发生多少上下文切换
vmstat的语法以下: vmstat [delay [count]]
参数 解释
delay 相邻的两次采样的间隔时间
count 采样的次数,count只能和delay一块儿使用
当没有参数时,vmstat则显示系统启动之后全部信息的平均值。有delay时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个delay时间段的平均信息。当系统有多个CPU时,输出为全部CPU的平均值。
参数 解释
任务的信息(procs)
范例1:average mode (粗略信息)
当vmstat不带参数时,对应的输出值是从系统启动以来的平均值,而r和b则对应的是完成这一命令时,系统的值。从下面例子,能够看出系统基本出去闲置状态(idle)。自启动以来,CPU在用户态消耗时间为5%,在核心态消耗为本1%,剩下的为闲置时间。须要指出的是:这里的用户态时间包括nice值为负的进程的时间。
范例2:average mode (详细信息)
命令格式: vmstat –s
这里只讨论与CPU相关信息。“CPU ticks”表示自系统启动CPU运行时间,这里以tick为时间单位。用tick来表示us,sy id 和wa的时间;forks指自从系统启动以来,所建立的新任务的个数。这些信息从/proc/stat 的第一行和”processes”行得到。
结果解释
non-nice user cpu ticks 自系统启动以来,CPU在用户态下运行非nice进程的时间,单位为jiffies user
nice user cpu ticks 自系统启动以来,CPU在用户态下运行nice进程的时间,单位为jiffies nice
system cpu ticks 自系统启动以来,CPU处于系统状态的时间,单位为jiffies sys
idle cpu ticks 自系统启动以来,CPU处于闲置状态的时间,单位为jiffies idle
IO-wait cpu ticks 自系统启动以来,CPU处理IO中断的时间,单位为jiffies iowait
IRQ cpu ticks 自系统启动以来,CPU处理硬中断的时间,单位为jiffies irq
softing cpu ticks 自系统启动以来,CPU处理软中断的时间,单位为jiffies Softirq
interrupts 自系统启动以来,发生的全部的中断的次数目 Intr
CPU context switches 自系统启动以来,发生的上下文交换的次数 Ctxt
boot time 自系统启动以来到如今运行的时间,单位为秒。 btime
forks 自系统启动以来所建立的任务的个数目。 Process
范例3:按期采样(delay [count])
按期采样数据是指每隔delay时间,采样一次。当count 为0时,vmstat 将不停地按期报告信息;不然当报告count次后,vmstat 命令中止运行。
第一行的信息如同范例1,是自系统启动以来的平均信息。从第二行开始,每行的意思是:r和b采样那一时刻系统运行队列和等待队列的状况;而usystem参数(in,cs)以及CPU参数(us,sy,id,wa)对应的输出值是系统在前一个delay的状况。
从下面例子能够看出上下文交换的次数小于中断的发生次数。当系统大部分时间是空闲而且中断大部分是时间中断时,这种现象很可能发生。当时间中断发生时, 由于调度器没有什么任务可调度,因此不多发生上下文切换。
uptime是Linux系统经常使用的命令,用来报告系统已经运行多长时间,依此显示的信息:如今时间,系统已经运行了的时间,目前有多少登录用户, 1分钟系统平均负载,5分钟系统平均负载,15分钟系统平均负载。该命令从/proc/loadavg 中得到load average的信息。
范例1:系统只用一个CPU
若是是单CPU的系统来讲,平均负载可能会高些。一般来讲:若是系统有n个CPU并且平均负载小于n,则说明某些CPU还有空闲的时间片。经过该命令,你能知道CPU是否繁忙,可是没法知道为何忙。
命令位置: