Linux 常用命令-- top

Linux 常用命令-- top

1. top命令简介

top 命令实时显示进程的状态。默认状态显示的是cpu密集型的进程,并且每5秒钟更新一次。你可以通过PID的数字大小,age (newest first), time (cumulative time),resident memory usage(常驻内存使用)以及进程从启动后占用cpu的时间。

image.png-250.8kB

如果你想提高某个进程的优先级,可以通过renice命令,如果有摸个进程占用太多的cpu资源,可以通过kill命令。

2. top命令显示的每个列的含义

top 显示出现的每个列的含义分别为:

  • PID: 进程描述符
  • USER: 进程的拥有者
  • PRI:进程的优先级
  • NI: nice level
  • SIZE: 进程拥有的内存(包括code segment + data segment + stack segment)
  • RSS: 物理内存使用
  • VIRT(virtul memory usage): 进程需要的虚拟内存大小
    1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
    2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
  • RES(resident memory usage): 常驻内存
    1、进程当前使用的内存大小,但不包括swap out
    2、包含其他进程的共享
    3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
    4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
  • SHARE: 和其他进程共享的物理内存空间
    1、除了自身进程的共享内存,也包括其他进程的共享内存
    2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
    3、计算某个进程所占的物理内存大小公式:RES – SHR
    4、swap out后,它将会降下来
  • STAT:进程的状态,有 S=sleeping,R=running,T=stopped or traced,D=interruptible sleep(不可中断的睡眠状态),Z=zombie。
  • %CPU: CPU使用率
  • %MEM: 物理内存的使用
  • TIME: 进程占用的总共cpu时间
  • COMMAND:进程的命令

3. top常用的命令

(1)s: 改变画面更新频率
(2)l: 关闭或开启第一部分第一行 top 信息的表示
(3)t: 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
(4)m: 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
(5)N: 以 PID 的大小的顺序排列表示进程列表
(6)P: 以 CPU 占用率大小的顺序排列进程列表
(7)M: 以内存占用率大小的顺序排列进程列表
(8)h: 显示帮助
(9)n: 设置在进程列表所显示进程的数量
(10)q: 退出 top
(11)A: 根据单窗口切换成多窗口,可以看到四个不同的窗口,可以通过a或者w来切换多个窗口。 四个窗口的名字分别为:Def,Job,Mem,Usr
image.png-286.6kB
(12)f:进入一个动态配置top的screen中,可以根据自己的喜好配置top
image.png-223.3kB
(13)o:对top的现有配置排序(order)
(14)r:使用renice命令
(15)k:使用kill命令
(16)i:使top不显示任何闲置或者僵死进程。
(17)c:显示整个命令行而不只是显示命令名。

4. top命令行使用方式

(1) 批量处理模式top -b

加上-b后,top显示的时候,将每一次显示的结果都打印出来,不会将上一次的结果给冲掉。

(2) 显示某个进程的信息top -p pid
image.png-62.3kB

如果是多个进程,只要如下:
$ top -p pid1,pid2,pid3

(3) 显示某个用户的进程信息top -u username
image.png-63.1kB
(4) 显示线程的信息,而不是进程的信息top -H
(5) 设置刷屏的时间(单位为s)top -d ntime
image.png-83.9kB