在linux系统中,经常会需要查看系统资源的使用情况进行分析,下面对top、ps、free命令的使用进行详解。
一、top命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。运行top命令后,CPU使用状态会以全屏的方式显示,并且会处在对话的模式,退出top的命令为q,即在top运行中敲q健。
类似如下图:
- 第一行(top):含义分别如下
up:系统当前时刻,
days:系统启动后到现在的运作时间,
users:当前登录到系统的用户终端数,
load average:当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数; - 第二行(Tasks):
total:当前系统进程总数,
running:当前运行中的进程数,
sleeping:当前处于等待状态中的进程数,
stopped:被停止的系统进程数,
zombie:僵尸进程数; - 第三行(Cpu):
us:用户空间占用CPU百分比,
sy:内核空间占用CPU百分比,
ni:用户进程空间内改变过优先级的进程占用CPU百分比,
id:空闲CPU百分比,
wa:等待输入输出的CPU时间百分比
hi:
si:
st: - 第四行(KiB Mem):
total:物理内存总量,
used:使用的物理内存总量,
free:空闲内存总量,
buffers:用作内核缓存的内存量; - 第五行(KiB Swap):
total:交换区总量,
userd:使用的交换区总量,
free:空闲交换区总量,
cached:缓冲的交换区总量;
下面为进程列表栏:
- PID:进程的ID,
- USER:进程所有者,
- PR:进程的优先级别,越小越优先被执行,
- NI:值,
- VIRT:进程占用的虚拟内存,
- RES:进程占用的物理内存,
- SHR:进程使用的共享内存,
- S:进程的状态,S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数,
- %CPU:进程占用CPU的使用率,
- %MEM:进程使用的物理内存和总内存的百分比,
- TIME+:该进程启动后占用的总的CPU时间,
- COMMAAND:进程启动命令名称,
top运行中可以通过top的内部命令对进程的显示方式进行控制,如下:
- s:改变画面更新频率;
- l:关闭或开启第一部分第一行 top 信息的表示;
- t:关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示;
- m:关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示;
- N:以 PID 的大小的顺序排列表示进程列表;
- P:以 CPU 占用率大小的顺序排列进程列表;
- M:以内存占用率大小的顺序排列进程列表;
- h:显示帮助;
- n:设置在进程列表所显示进程的数量;
- q:退出 top;
二、ps命令
ps命令用于报告当前系统的进程状态,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
ps -l命令显示如下:
- F:代表这个程序的旗标;
- S:代表这个程序的状态 ;
- UID:用户ID;
- PID:进程ID;
- PPID:
- C:CPU 使用的资源百分比;
- PRI:优先执行序;
- NI:这个是 Nice 值;
- ADDR:该程序在内存的那个部分;
- SZ:使用掉的内存大小;
- WCHAN:目前这个程序是否正在运作当中;
- TTY:登入者的终端机位置;
- TIME:使用掉的 CPU 时间;
- CMD:下达的指令;
三、free命令
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
free命令显示如下:
- total:总计物理内存的大小;
- userd:已使用大小;
- free:可用大小;
- shared:多个进程共享的内存总额;
- buffers:磁盘缓存的大小;
- cached:磁盘缓存的大小;