vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。

vmstat 最常用的有两个数字参数,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如果不写就是一直采样下去。

下面是使用 make -j10 编译时输出的报告:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st

字段说明详见 man vmstat ,如下:

Procs(进程):

r: 运行队列中进程数量

b: 等待IO的进程数量,即阻塞的进程

Memory(内存):

swpd: 虚拟内存大小

free: 可用内存大小

buff: 用作缓冲的内存大小

cache: 用作缓存的内存大小

Swap:

si:  Amount of memory swapped in from disk (/s).

so: Amount of memory swapped to disk (/s).

IO:(现在的Linux版本块的大小为1024bytes)

bi: 每秒读取的块数

bo: 每秒写入的块数

系统:

in: 每秒中断数,包括时钟中断。

cs: 每秒上下文切换数。

CPU(以百分比表示):

us: 用户进程执行时间(user time)

sy: 系统进程执行时间(system time)

id: 空闲时间(包括IO等待时间)

wa: 等待IO时间

top:

可以动态观察系统进程状况,方便系统管理员实时了解系统资源现状。

常用热键 用途
t 显示摘要信息开关.
m 显示内存信息开关.
A 分类显示系统不同资源的使用大户。有助于快速识别系统中资源消耗多的任务。
f 添加删除所要显示列.
o 调整所要显示列的顺序.
r 调整一个正在运行的进程Nice值.
k 结束一个正在运行的进程.
z 彩色/黑白显示开关                                      
1 单CPU显示开关  
H      显示线程
x 高亮显示排序的列
y   高亮显示正在运行的任务
z 彩色、黑白显示
Z   选择颜色模板(a或 w来调整,回车确定)
N 按PID排序
M 按内存使用排序
P 按CPU使用排序
<(>) 以当前排序列的左边(或右边)列进行排序
R 反向排序

PR (Priority):即进程的优先级,或者通俗点说就是程序被CPU执行的先后顺序,此值越小进程的优先级别越高。

NI (Nice value):Nice值,其表示进程可被执行的优先级的修正数值。如前面所说,PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice。这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行。在UNIX系统或者LINUX系统中,使用从-20到+19的一个可变数值来表示这个nice值。

uptime 命令主要用于获取主机运行时间和查询linux系统负载等信息。

依次显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。

:: up  days,  :,   users,  load average: 0.08, 0.05, 0.08

free 命令

             total       used       free     shared    buffers     cached
Mem:
-/+ buffers/cache:
Swap:

对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。从应用程序的角度来说,可用内存= free buffers+cached = total-used

pmap 命令可以显示进程的内存映射,使用这个命令可以找出造成内存瓶颈的原因。

while true; do pmap -d  3066 | tail -1; sleep 2; done

mapped: 11952K    writeable/private: 248K    shared: 0K
mapped: 11952K writeable/private: 248K shared: 0K
mapped: 11952K writeable/private: 248K shared: 0K

vmstat、top的更多相关文章

  1. Linux 进程管理 vmstat、top、pstree命令

    vmstat命令:监控系统资源 vmstat 是 Linux 中的一个综合性能分析工具,可以用来监控 CPU 使用.进程状态.内存使用.虚拟内存使用.磁盘输入/输出状态等信息.vmstat 命令格式如 ...

  2. 【w、vmstat、top、sar、nload】各个命令 使用介绍

    第7周第1次课(5月7日) 课程内容: 10.1 使用w查看系统负载10.2 vmstat命令10.3 top命令10.4 sar命令10.5 nload命令 10.1 使用w查看系统负载 w命令查看 ...

  3. Linux运维平台工具:pstree、ps、top、htop、free、vmstat、dstat、kill、killall

    1.pstree命令 查看进程树,centos7下统一由systemd进行管理 [root@ELK-chaofeng systemd]# pstree systemd─┬─AliYunDun───*[ ...

  4. Linux学习--第十二天--服务、ps、top、pstree、kill、&、jobs、fg、vmstat、dmesg、free、uptime、uname、crontab、ls

    服务分类 linux服务分为rpm包默认安装的服务和源码包安装的服务. rpm包默认安装的服务分为独立的服务和基于xinetd服务. 查询已安装的服务 rpm包安装的服务 chkconfig --li ...

  5. Linux centos7 日常运维——使用w查看系统负载、vmstat命令、top命令、sar命令、nload命令

    一.使用w查看系统负载 w .uptime查看系统负载,0.00表示1分钟之内负载为0 cat  /proc/cpuinfo查看cpu核数 二.vmstat命令,查看进程.cpu.memory.交换. ...

  6. linux性能监控命令(vmstat、sar、iostat、netstat)

    1.常用系统命令Vmstat.sar.iostat.netstat.free.ps.top等 2.常用组合方式• 用vmstat.sar.iostat检测是否是CPU瓶颈• 用free.vmstat检 ...

  7. centos Linux系统日常管理1 cpuinfo cpu核数 命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ,lsof ,pidof 第十四节课

    centos Linux系统日常管理1  cpuinfo cpu核数   命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ...

  8. 【进程/作业管理】篇章一:Linux进程及管理(专用内存监控类工具)------【vmstat、pmap】

    主要讲解专用内存监控工具的使用:vmstat.pmap命令的使用. 命令概览: vmstat 显示虚拟内存状态 pmap 报告进程与内存映射关系 vmstat命令是最常见的Linux/Unix监控工具 ...

  9. Spark算子--take、top、takeOrdered

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/552e8a32eee9d50fe394dfdcb14c78f3.html take.top.takeOrder ...

随机推荐

  1. linux内核增加系统调用--Beginner‘s guide

    Linux内核中设置了一组用于实现系统功能的子程序,称为系统调用.系统调用和普通库函数调用非常相似明知是系统调用由操作系统核心提供,运行于核心态,而普通的函数调用由函数库或用户自己提供,运行于用户态. ...

  2. 数据结构算法C语言实现(二十)--- 6.3.1遍历二叉树

    一.简述 二叉树的遍历主要是先序.中序.后序及对应的递归和非递归算法,共3x2=6种,其中后序非递归在实现上稍复杂一些.二叉树的遍历是理解和学习递归及体会栈的工作原理的绝佳工具! 此外,非递归所用的栈 ...

  3. Newtonsoft.Json动态过滤属性

    Newtonsoft.Json动态过滤属性 接口写的多了,会发现很多的问题.同一个dto,不同的action返回的字段个数不一样.往往开发人员因为懒或者各种原因一股脑的全返回,会浪费很多流量且用户体验 ...

  4. 判断请求是不是ajax

    public static bool IsAjaxRequest(HttpRequest request) { if (request == null) { throw new ArgumentNul ...

  5. LaTeX 笔记---Q&A

    Q: Is it possible to check which package do I need to install to get certain .sty file from tlmgr ra ...

  6. Session对象

    Session对象用于存储在多个页面调用之间特定用户的信息.Session对象只针对单一网站使用者,不同的客户端无法互相访问.Session对象中止于联机机器离线时,也就是当网站使用者关掉浏览器或超过 ...

  7. 配置ASP.NET Web应用程序, 使之运行在medium trust

    这文章会向你展示, 怎么配置ASP.NET Web应用程序, 使之运行在medium trust.   如果你的服务器有多个应用程序, 你可以使用code access security和medium ...

  8. Linux下安装py-leveldb

    1.下载源代码 svn checkout http://py-leveldb.googlecode.com/svn/trunk/ py-leveldb-read-only 2.安装辅助工具 sudo ...

  9. java学习总结

    1 获得项目绝对路径 String path = request.getContextPath(); String basePath = request.getScheme() + ":// ...

  10. HDU5672String(尺标法)

    问题描述 有一个 10\leq10≤长度\leq 1,000,000≤1,000,000 的字符串,仅由小写字母构成.求有多少个子串,包含有至少k(1 \leq k \leq 26)k(1≤k≤26) ...