linux 进程监控命令1——top

1、top命令

  top命令和ps命令的基本作用是相同的,显示系统当前的进程和其他状况;但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如 前台执行该命令,它将独占前台,直到用户终止该程序为止。

比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用。内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。在后面的介绍中将把命令参数和交互命令分开讲述。

常用热键 用途
t 显示摘要信息开关.
m 显示内存信息开关.
A 分类显示系统不同资源的使用大户。有助于快速识别系统中资源消耗多的任务。
f 添加删除所要显示栏位.
o 调整所要显示栏位的顺序.
r 调整一个正在运行的进程Nice值.
k 结束一个正在运行的进程.
z 彩色/黑白显示开关

一、相关设定默认值

全局


'A' - 交替显示模式

* 'd' - 刷新时间间隔

'I' - Irix mode

* 'p' - 监控特定PID

* 's' - 安全模式

'B' - 粗体显示

 

Off (默认为全屏显示,On时交替显示)

3.0秒

On

Off

Off

Off

摘要区


'l'- 平均负载及系统运行时间

't'- 任务及CPU状态

'm'- 内存及交换空间状态

'1'- 单CPU显示

 

On

On

On

On (如果为系统包含多处理器,只显示在一行中)

任务区域


'b'- 黑体/反色显示高亮的行/列

* 'c'- 任务执行的命令行

* 'H'- 显示线程

* 'i'- 空闲任务显示

'R'- 反序显示

* 'S'- 累计时间

'x'- 高亮显示排序的列

'y'- 高亮显示正在运行的任务

'z'- 彩色/黑白显示

 

On (off)

Off (只显示任务名称,不显示任务全格式信息)

Off

On

On

Off

Off

On

Off

注:*标示的设定,可以在启动top时,使用命令行参数覆盖指定参数值。

二、命令行启动参数:

用法: top -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

-b : 批次模式运行。通常用作来将top的输出的结果传送给其他程式或储存成文件。

-c : 显示执行任务的命令行。

-d : 设定延迟时间

-h : 帮助

-H : 显示线程。当这个设定开启时,将显示所有进程产生的线程。

-i : 显示空闲的进程。

-n : 执行次数。一般与-b搭配使用

-u : 监控指定用户相关进程

-U : 监控指定用户相关进程

-p : 监控指定的进程。当监控多个进程时,进程ID以逗号分隔。这个选项只能在命令行下使用。

-s : 安全模式操作

-S : 累计时间模式

-v : 显示top版本,然后退出。

-M : 自动显示内存单位(k/M/G)

三、栏位信息

在top中,分别使用26个英文字母对应进程相关信息栏位。可已通过f来添加或移除指定的栏位,通过o来调整对栏位显示顺序。下面我们针对这些栏位进行说明。

a: PID (Process Id):任务的进程ID

b: PPID (Parent Process Pid):父任务的进程ID

c: RUSER (Real User Name):任务的所有者真实名称

d: UID (User Id):任务所有者ID

e: USER (User Name):任务所有者名称

f: GROUP (Group Name):任务所有者群组名

g: TTY (Controlling Tty):终端

h: PR (Priority):优先级

i: NI (Nice value):Nice值

j: P (Last used CPU (SMP)):

k: %CPU (CPU usage):CPU使用率

l: TIME (CPU Time):CPU时间

m: TIME+ (CPU Time, hundredths):CPU时间,精确到秒

n: %MEM (Memory usage (RES)):内存使用率

o: VIRT (Virtual Image (kb)):虚拟内存。VIRT = SWAP + RES

p: SWAP (Swapped size (kb)):交换空间

q: RES (Resident size (kb)):常驻内存。RES = CODE + DATA

r: CODE (Code size (kb)):

s: DATA (Data+Stack size (kb)):

t: SHR (Shared Mem size (kb)):共享内存。

u: nFLT (Page Fault count):

v: nDRT (Dirty Pages count):

w: S (Process Status):进程状态

分别有以下几种:

D = uninterruptible sleep = 不可被唤醒睡眠

R = running = 正在运行中

S = sleeping = 睡眠状态

T = traced or stopped = 出错或停止状态

Z = zombie = 僵尸状态

x: Command (Command line or Program name):进程名或命令行

y: WCHAN (Sleeping in Function):

z: Flags (Task Flags):

示例1:增加和移除进程信息栏位(输入f)

   

示例2:调整进程信息栏位显示顺序(输入o)

四、交互命令

1.全局命令

回车、空格 : 刷新显示信息

?、h : 帮助

= : 移除所有任务显示的限制

A : 交替显示模式切换

B : 粗体显示切换

d、s : 更改界面刷新时间间隔

G : 选择其它窗口/栏位组

I : Irix或Solaris模式切换

u、U : 监控指定用户相关进程

k : 结束进程

q : 退出top

r : 重新设定进程的nice值

W : 存储当前设定

Z : 改变颜色模板

2.摘要区命令

l : 平均负载及系统运行时间显示开关

m : 内存及交换空间使用率显示开关

t : 当前任务及CPU状态显示开关

1 : 汇总显示CPU状态或分开显示每个CPU状态    

3.任务区命令

外观样式

b : 黑体/反色显示高亮的行/列。控制x和y交互命令的顯示樣式。

x : 高亮显示排序的列

y : 高亮显示正在运行的任务

z : 彩色/黑白显示。

显示内容

c : 任务执行的命令行或进程名称

f、o : 增加和移除进程信息栏位及调整进程信息栏位显示顺序

H : 显示线程

S : 时间累计模式

u : 监控指定用户相关进程

任务显示的数量

i : 显示空闲的进程

n或# : 设置任务显示最大数量

任务排序

M : 按内存使用率排序

N : 按PID排序

P : 按CPU使用率排序

T : 按Time+排序

< : 按当前排序栏位左边相邻栏位排序

> : 按当前排序栏位右边相邻栏位排序

F 或 O : 选择排序栏位

R : 反向排序

 下面是该命令的语法格式:

  top [-] [d delay] [q] [c] [s] [S] [i]

  d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

  q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

  S 指定累计模式。

  s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

  i 使top不显示任何闲置或者僵死进程。

  c 显示整个命令行而不只是显示命令名

top命令显示的项目很多,默认值是每5秒更新一次,当然这是可以设置的。显示的各项目为:

  uptime 该项显示的是系统启动时间、已经运行的时间和三个平均负载值(最近1秒,5秒,15秒的负载值)。

  processes 自最近一次刷新以来的运行进程总数。当然这些进程被分为正在运行的,休眠的,停止的等很多种类。进程和状态显示可以通过交互命令t来实现。

  CPU states 显示用户模式,系统模式,优先级进程(只有优先级为负的列入考虑)和闲置等各种情况所占用CPU时间的百分比。优先级进程所消耗的时间也被列入到用户和系统的时间中,所以总的百分比将大于100%。

  Mem 内存使用情况统计,其中包括总的可用内存,空闲内存,已用内存,共享内存和缓存所占内存的情况。

  Swap 交换空间统计,其中包括总的交换空间,可用交换空间,已用交换空间。

  PID 每个进程的ID。

  PPID 每个进程的父进程ID。

  UID 每个进程所有者的UID 。

  USER 每个进程所有者的用户名。

  PRI 每个进程的优先级别。

  NI 该进程的优先级值。

  SIZE 该进程的代码大小加上数据大小再加上堆栈空间大小的总数。单位是KB。

  TSIZE 该进程的代码大小。对于内核进程这是一个很奇怪的值。

  DSIZE 数据和堆栈的大小。

  TRS 文本驻留大小。

  D 被标记为“不干净”的页项目。

  LIB 使用的库页的大小。对于ELF进程没有作用。

  RSS 该进程占用的物理内存的总数量,单位是KB。

  SHARE 该进程使用共享内存的数量。

  STAT 该进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态。

  TIME 该进程自启动以来所占用的总CPU时间。如果进入的是累计模式,那么该时间还包括这个进程子进程所占用的时间。且标题会变成CTIME。

  %CPU 该进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。

  %MEM 该进程占用的物理内存占总内存的百分比。

  COMMAND 该进程的命令名称,如果一行显示不下,则会进行截取。内存中的进程会有一个完整的命令行。

  下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。

  $#@60;空格立即刷新显示。

  Ctrl+L 擦除并且重写屏幕。

  h或者? 显示帮助画面,给出一些简短的命令总结说明。

  k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。

  i 忽略闲置和僵死进程。这是一个开关式命令。

  q 退出程序。

  r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及

  S 切换到累计模式。

  s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

  f或者F 从当前显示中添加或者删除项目。

  o或者O 改变显示项目的顺序。

  l 切换显示平均负载和启动时间信息。

  m 切换显示内存信息。

  t 切换显示进程和CPU状态信息。

  c 切换显示命令名称和完整命令行。

  M 根据驻留内存大小进行排序。

  P 根据CPU使用百分比大小进行排序。

  T 根据时间/累计时间进行排序。

  W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

  从上面的介绍中可以看到,top命令是一个功能十分强大的监控系统的工具,尤其对于系统管理员而言更是如此。一般的用户可能会觉得ps命令其实就够用了,但是top命令的强劲功能确实提供了不少方便。下面来看看实际使用的情况。

 [例23] 键入top命令查看系统状况

  $ top

  1:55pm up 7 min, 4 user, load average:0.07,0.09,0.06

  29 processes:28 sleeping, 1 running, 0 zombie, 0 stopped

  CPU states: 4.5% user, 3.6% system, 0.0% nice, 91.9% idle

  Mem: 38916K av, 18564K used, 20352K free, 11660K shrd, 1220K buff

  Swap: 33228K av, 0K used, 33228K free, 11820K cached

  PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND

  363 root 14 0 708 708 552 R 0 8.1 1.8 0:00 top

  1 root 0 0 404 404 344 S 0 0.0 1.0 0:03 init

  2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd

  3 root -12 -12 0 0 0 SW$#@60; 0 0.0 0.0 0:00 kswapd

  4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 md_thread

  5 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 md_thread

  312 root 1 0 636 636 488 S 0 0.0 1.6 0:00 telnet

  285 root 6 0 1140 1140 804 S 0 0.0 2.9 0.00 bash

  286 root 0 0 1048 1048 792 S 0 0.0 2.6 0.00 bash

  25 root 0 0 364 364 312 S 0 0.0 0.9 0.00 kerneld

  153 root 0 0 456 456 372 S 0 0.0 1.1 0.00 syslogd

  160 root 0 0 552 552 344 S 0 0.0 1.4 0.00 klogd

  169 daemon 0 0 416 416 340 S 0 0.0 1.0 0.00 atd

  178 root 2 0 496 496 412 S 0 0.0 1.2 0.00 crond

  187 bin 0 0 352 352 284 S 0 0.0 0.9 0.00 portmap

  232 root 0 0 500 500 412 S 0 0.0 1.2 0.00 rpc.mountd

  206 root 0 0 412 412 344 S 0 0.0 1.0 0.00 inetd

  215 root 0 0 436 436 360 S 0 0.0 1.1 0.00 icmplog

  

第一行的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。

第二行为进程情况,依次为进程总数、休眠进程数、运行进程数、僵死进程数、终止进程数。

第三行为CPU状态,依次为用户占用、系统占用、优先进程占用、闲置进程占用。

第四行为内存状态,依次为平均可用内存、已用内存、空闲内存、共享内存、缓存使用内存。

第五行为交换状态,依次为平均可用交换容量、已用容量、闲置容量、高速缓存容量。然后下面就是和ps相仿的各进程情况列表了。

  总的来说,top命令的功能强于ps,但需要长久占用前台,所以用户应该根据自己的情况来使用这个命令。

时间: 2024-09-04 13:27:16

linux 进程监控命令1——top的相关文章

linux 进程监控命令2——ps

整理自网络 平时linux进程查看还是比较常用的,于是我研究了一下linux ps命令的使用方式,在这里拿出来和大家分享一下,希望对大家有用. 1. ps简介 前面介绍的两个命令(who.w命令)都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题.要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的linux进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结束.进程有没有僵死.哪些进程占

linux 进程监控命令3——uptime

linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令过去只显示系统运行多久.现在,可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系统在过去的1分钟.5分钟和15分钟内的平均负载. uptime命令用法十分简单:直接输入:# uptime即可. 输入样例: .$ uptime 18:02:41 up 41 days, 23:42,  1 user,  load average: 0.00, 0.

为什么 Linux 的 htop 命令完胜 top 命令

为什么 Linux 的 htop 命令完胜 top 命令 在 Linux 系统中,top 命令用来显示系统中正在运行的进程的实时状态,它显示了一些非常有用的信息,比如 CPU 利用情况.内存消耗情况,以及每个进程情况等.但是,你知道吗?还有另外一个命令行工具 'htop',它与传统的 top 命令功能一样,但它有更加强大的功能及能显示更多的信息.这篇文章,我们会用实例来讨论这个 'htop' 命令. Linux 中的 htop 命令 下面是从 htop 的手册页摘抄下来的相关描述: 它类似于 t

常用的linux系统监控命令整理

  找到最耗CPU的java线程ps命令 命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid 结果展示: 这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息. 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列. 比如这里找到了一个TID : 30834 ,所占用的TIME时间最高. 通过 printf "%xn" 30834 首先转化成16进制, 继续

Linux系统资源监控命令简介

Linux 系统由若干主要物理组件组成,如CPU.内存.网卡和存储设备.要有效地管理Linux 环境,您应该能够以合理的精度测量这些资源的 各种指标-每个组件处理多少资源.是否存在瓶颈等.下面我们介绍下linux资源监控有关的一些命令. 查看系统发行版 root@cf0c6032ba2f:/# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Re

[网络摘录学习]常用的Linux系统监控命令

发现这篇文章可工作性能调优使用,摘录于下.原文链接:http://os.51cto.com/art/201108/286625.htm版权归原作者所有. 找到最耗CPU的java线程 ps命令 命令: ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid 结果展示:     这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息. 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最

常用的linux系统监控命令

记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了 找到最耗CPU的java线程 ps命令 命令:ps -mp pid -o THREAD,tid,time   或者  ps -Lfp pid 结果展示:   这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息. 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列.   比如这里找到了一个TID : 30834 ,所占用的TIME时间最

16个不可不知的Linux服务器监控命令

想不想知道你的服务器到底在干什么?那么你要知道本文介绍的这些基本命令.一旦你熟悉掌握了这些命令,就为成为专业的 Linux系统管理员打下了基础. 你可以通过图形化用户界面(GUI)程序来获取这些外壳命令提供的大量信息,具体取决于使用哪一种Linux发行版.比如说,SUSE Linux就有一款出色的.图形化配置和管理工具YaST,KDE的KDE System Guard同样很出色. 不过,Linux管理员要明白的一个常理是:只有绝对必要时,才应该在服务器上运行GUI.那是由于,Linux GUI耗

你需要知道的16个Linux服务器监控命令_Linux

有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard 同样很出色.当然,要使用这些工具,你必须在服务器跟前进行操作,而且这些 GUI 的程序占用了很多系统资源,所以说,尽管 GUI 用来做基本的服务器健康状态监测挺好,但如果你想知道真正发生什么,请关掉 GUI 开始命令行之旅吧. 你应该只在需要的时候去启动 GUI ,不用的时候关掉它.如果要让服务器保持最佳性能,你应该将 L