直接查看man top 或者man free即可查看其更详细的使用,这里简单介绍一下基本功能及输出。
free 用来显示所有可用及已经使用的系统内存数,包括物理内存总数及使用量、交换区、buffer、共享内存等,其参数及含义如下:
使用格式: free [-b | -k | -m | -g] [-o] [-s delay ] [-t] [-V]
-b -k -m -g这四个是输出单位参数,分别表示输出数值的单位为BYTE、KB、MB及GB
-t显示汇总行total
-o不显示+/-buffers行
-V显示版本号
-s刷新时间 如free -ms2会每2秒刷新一次
输出结果列包括:
物理内存总数、已使用物理内存数、可使用物理内存数、共享内存数、buffers和cached数
-/+buffers/cache表示已使用的数量减去用作cached和buffers数后真正现在使用掉的内存数,及可用量加上cached和buffers后真正可使用的量
buffer和cache的区别在于,buffer是读写的缓冲区,而cache是将硬盘的东西放一部分到内存中来,如果访问的东东在里面,则有命中的概念,而buffer没有命令的概念
top动态实时显示进程对资源的使用情况,定时刷新,top指令对系统的性能会有比较大的损耗
top命令运行后,显示分为基本信息汇总区和进程区。基本信息汇总区显示了进程、cpu、内存、swap分区的使用情况概述,进程区显示了各个进程对资源的具体使用情况。
第一行显示:系统运行了10天又4小时16分,当前1个用户登录,过去5、10、15分钟的load average是1.12,1.50,1.43.由于是8核,因此load是很低的,通过上面的free命令可以看到,内存是目前102环境上的瓶颈。
第二行显示:有182个进程在运行,1个正在运行,181个休眠,0个停止,0个僵死
第三行显示:cpu有5.5%us用户使用率,0.6%sy系统使用率,0.0%ni表示各进程间更改nice值所用的时间,93.8%id系统idle(空闲)的时间,0.0%wa为io等待cpu的时间,hi表示软中断占cpu的时间,si表示硬中断占cpu的时间,st表示流逝时间(监控程序未监控到的)
第四和第五行的内存及swap区情况比较简单明了,free命令也有描述,不再多说。
任务区输出列的含义如下(默认情况下只显示一部分列):
PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名