top 命令是 Linux 系统中常用的性能分析工具,能够实时显示系统中各个进程的占用资源情况,类似与 windows 系统下的任务管理器。
命令使用起来很简单,直接输入 top 就可以出现统计情况,请看下图:
下面我们详细介绍各个参数的作用:
统计信息区前五行是系统整体的统计信息: 第一行是系统当前时间 13:54:39 ,连续运行了 43 天 17 个小时 27 分钟,当前登录用户为 1 个,系统平均负载为 0.00 0.00 0.00 ,这三个值分别为 1 分钟、5 分钟、15 分钟前到现在的平均值。 第二、三行为进程和cpu的信息,如果多个cpu会超过两行 Tasks:86 total 进程总数 1 running 正在运行的进程数 85 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程数 Cpu(s):0.0%us 用户空间占用cpu百分比 0.2%sy 内核空间占用cpu百分比 0.0%ni 用户进程空间内改变过优先级的进程占用cpu百分比 99.8%id 空闲cpu百分比 0.0%wa 等待输入输出的cpu百分比 0.0%hi cpu服务于硬中断所耗费的时间总额 0.0%si、0.0%st cpu服务于软件中断所耗费的时间总额、Steal Time 第四、五行分别为物理内存、交换分区信息 Mem: 1921000k total 物理内存总容量 1825064k used 使用的物理内存容量 95936k free 空闲内存容量 158048k buffers 用作内核缓存的容量 Swap:2146296k total 交换分区总容量 596k used 使用交换分区容量 2145700k free 空闲交换分区容量 1434396k cached 缓存的交换分区容量 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小.相应的内存再次被换出时可不必再对交换区写入. 进程信息区显示了各个进程的详细信息: 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 命令名/命令行 ##默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 几个列! 可以通过下面的快捷键来更改显示内容: 更改显示内容通过 f 键可以选择显示的内容(按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定) 按 o 键可以改变列的显示顺序(按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动,最后按回车键确定) 按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序,而大写的 R 键可以将当前的排序倒转. PPID 父进程id RUSER Real user name UID 进程所有者的用户id GROUP 进程所有者的组名 TTY 启动进程的终端名.不是从终端启动的进程则显示为 ? P 最后使用的CPU,仅在多CPU环境下有意义 TIME 进程使用的CPU时间总计,单位秒 SWAP 进程使用的虚拟内存中,被换出的大小,单位kb. CODE 可执行代码占用的物理内存大小,单位kb DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb nFLT 页面错误次数 nDRT 最后一次写入到现在,被修改过的页面数. WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 Flags 任务标志,参考 sched.h |