vmstat、top

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
 0  0      0 4944468 261552 2525348    0    0     0     2    1    5  0  0 99  0  0
 0  0      0 4944840 261552 2525348    0    0     0    48  359  176  1  0 99  0  0
 0  0      0 4944584 261552 2525348    0    0     0     0   60   38  0  0 100  0  0
10  0      0 4885292 261552 2525360    0    0     0     0 7369  582 59 30 11  0  0
10  0      0 4868388 261552 2525424    0    0     0     0 8101  485 69 30  0  0  0

字段说明详见 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分钟内的平均负载。

08:00:30 up 5 days,  1:29,  2 users,  load average: 0.08, 0.05, 0.08


free 命令

             total       used       free     shared    buffers     cached
Mem:       8160468    2470356    5690112          0     240448    1866024
-/+ buffers/cache:     363884    7796584
Swap:            0          0          0

对于应用程序来说,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
原文地址:https://www.cnblogs.com/tianyajuanke/p/3333281.html