一、top命令

1、简介

   top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

2、常用选项

-b:以批处理模式操作;

-c:显示完整的治命令;

-d:屏幕刷新间隔时间;

-I:忽略失效过程;

-s:保密模式;

-S:累积模式;

-i<时间>:设置间隔时间;

-u<用户名>:指定用户名;

-p<进程号>:指定进程;

-n<次数>:循环显示的次数。

3、top命令输出各参数介绍

[root@hpf-linux ~]# top -bn1
top - 21:50:48 up 4 min,  2 users,  load average: 0.00, 0.02, 0.00
Tasks: 102 total,   1 running, 101 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.5%us,  0.8%sy,  0.0%ni, 98.4%id,  0.2%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   1030416k total,   141908k used,   888508k free,    14684k buffers
Swap:  2047996k total,        0k used,  2047996k free,    51848k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
    1 root      20   0  2900 1412 1204 S  0.0  0.1   0:01.34 init              
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd          
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0      
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0      
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0        
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0        
    7 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1      
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/1        
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1      
   10 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/1        
.................................

3.1、系统运行时间和平均负载

top - 21:50:48 up 4 min,  2 users,  load average: 0.00, 0.02, 0.00

说明:

  • 当前时间

  • 系统已运行的时间

  • 当前登录用户的数量

  • 相应最近5、10和15分钟内的平均负载。

3.2、任务

Tasks: 102 total,   1 running, 101 sleeping,   0 stopped,   0 zombie

说明:

   第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用't'切换显示。

3.3、CPU 状态

Cpu(s):  0.5%us,  0.8%sy,  0.0%ni, 98.4%id,  0.2%wa,  0.0%hi,  0.1%si,  0.0%st

说明:

  • us, user: 运行(未调整优先级的) 用户进程的CPU时间 

  • sy,system: 运行内核进程的CPU时间 

  • ni,niced:运行已调整优先级的用户进程的CPU时间 

  • wa,IO wait: 用于等待IO完成的CPU时间 

  • hi:处理硬件中断的CPU时间 

  • si: 处理软件中断的CPU时间 

  • st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。

3.4、内存使用状况 

Mem:   1030416k total,   141908k used,   888508k free,    14684k buffers

Swap:  2047996k total,        0k used,  2047996k free,    51848k cached

说明:

        接下来两行显示内存使用率,有点像'free'命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。 物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地:交换部分显示的是:全部、已使用、空闲和缓冲交换空间。内存显示可以用'm'命令切换。

3.5、字段列

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
    1 root      20   0  2900 1412 1204 S  0.0  0.1   0:01.34 init              
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd          
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0      
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0      
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0        
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0        
    7 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1      
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/1        
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1      
   10 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/1

说明:

  • PID : 进程ID,进程的唯一标识符 

  • USER : 进程所有者的实际用户名。 

  • PR : 进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。 

  • NI : 进程的nice值(优先级)。越小的值意味着越高的优先级。 

  • VIRT :进程使用的虚拟内存。 

  • RES : 驻留内存大小。驻留内存是任务使用的非交换物理内存大小。 

  • SHR : SHR是进程使用的共享内存。 

S : 这个是进程的状态。它有以下不同的值:

D - 不可中断的睡眠态。

R – 运行态

S – 睡眠态

T – 被跟踪或已停止

Z – 僵尸态

  • %CPU : 自从上一次更新时到现在任务所使用的CPU时间百分比。

  • %MEM: 进程使用的可用物理内存百分比。

  • TIME+ : 任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。

  • COMMAND : 运行进程所使用的命令。

还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。


二、htop命令

1、htop命令简介

   top作为日常管理工作中最常用也是最重要的Linux系统监控工具之一,可以动态观察系统进程状况。但其缺点就是只支持键盘操作,显示也单调。作为刚才Windows转到Linux的我来说,现在有了一个更好的选择:htop。htop是Linux系统下一个基本文本模式的、交互式的进程查看器,主要用于控制台或shell中,可以替代top,或者说是top的高级版。 

htop命令优点:

        1) 快速查看关键性能统计数据,如CPU(多核布局)、内存/交换使用;

        2) 可以横向或纵向滚动浏览进程列表,以查看所有的进程和完整的命令行;

        3) 杀掉进程时可以直接选择而不需要输入进程号;

        4) 通过鼠标操作条目;

        5) 比top启动得更快;

2、安装htop

[root@example.com ~]# yum install -y htop

3、常用功能键

键入htop 命令,打开htop:

linux网络命令(八)之top、htop_Linux、top、htop

上面左上角显示CPU、内存、交换区的使用情况,右边显示任务、负载、开机时间,下面就是进程实时状况。

下面是 F1~F10 的功能和对应的字母快捷键:

  • F1 : 查看htop使用说明 

  • F2 : 设置 

  • F3 : 搜索进程 

  • F4 : 过滤器,按关键字搜索 

  • F5 : 显示树形结构 

  • F6 : 选择排序方式 

  • F7 : 减少nice值,这样就可以提高对应进程的优先级 

  • F8 : 增加nice值,这样可以降低对应进程的优先级 

  • F9 : 杀掉选中的进程 

  • F10 : 退出htop 

命令行选项(COMMAND-LINE OPTIONS):

  • -C --no-color        使用一个单色的配色方案 

  • -d --delay=DELAY     设置延迟更新时间,单位秒 

  • -h --help           显示htop 命令帮助信息 

  • -u --user=USERNAME    只显示一个给定的用户的过程 

  • -p --pid=PID,PID…       只显示给定的PIDs 

  • -s --sort-key COLUMN     依此列来排序 

  • -v –version          显示版本信息

交互式命令(INTERACTIVE COMMANDS):

  • 上下键或PgUP, PgDn 选定想要的进程,左右键或Home, End 移动字段,当然也可以直接用鼠标选定进程; 

  • Space    标记/取消标记一个进程。命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程 

  • U    取消标记所有进程 

  • s    选择某一进程,按s:用strace追踪进程的系统调用 

  • l    显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件 

  • I    倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然 

  • +, -   在树形模式下,展开或折叠子树

  • a (在有多处理器的机器上)    设置 CPU affinity: 标记一个进程允许使用哪些CPU 

  • u    显示特定用户进程 

  • M    按Memory 使用排序 

  • P    按CPU 使用排序 

  • T    按Time+ 使用排序 

  • F    跟踪进程: 如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用:通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能。 

  • K    显示/隐藏内核线程 

  • H    显示/隐藏用户线程 

  • Ctrl-L    刷新 

  • Numbers    PID 查找: 输入PID,光标将移动到相应的进程上

4、显示说明

linux网络命令(八)之top、htop_Linux、top、htop_02

左边部分从上至下,分别为,cpu、内存、交换分区的使用情况,右边部分为:Tasks为进程总数,当前运行的进程数、Load average为系统1分钟,5分钟,10分钟的平均负载情况、Uptime为系统运行的时间。

linux网络命令(八)之top、htop_Linux、top、htop_03

  • PID:进行的标识号 

  • USER:运行此进程的用户 

  • PRI:进程的优先级 

  • NI:进程的优先级别值,默认的为0,可以进行调整 

  • VIRT:进程占用的虚拟内存值 

  • RES:进程占用的物理内存值 

  • SHR:进程占用的共享内存值 

  • S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态 

  • %CPU:该进程占用的CPU使用率 

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

  • TIME+:该进程启动后占用的总的CPU时间 

  • COMMAND:进程启动的启动命令名称

5、htop使用说明

F1:显示帮助信息

linux网络命令(八)之top、htop_Linux、top、htop_04

F2 Htop设定

linux网络命令(八)之top、htop_Linux、top、htop_05

Setup 选项下的:

  • Meters 

        设定顶端的显示信息,分为左右两侧,Left column 表示左侧的显示的信息,Right column表示右侧显示的信息,如果要新加选项,可以选择Available meters添加,F5新增到上方左侧,F6新增到上方右侧。Left column和Right column下面的选项,可以选定信息的显示方式,有LED、Bar(进度条)、Text(文本模式),可以根据个人喜好进行设置

  • Display options

linux网络命令(八)之top、htop_Linux、top、htop_06

选择要显示的内容,按空格 x表示显示,选择完后,按F10保存

  • Colors

linux网络命令(八)之top、htop_Linux、top、htop_07

设定界面以什么颜色来显示。

  • Colums

linux网络命令(八)之top、htop_Linux、top、htop_08

作用是增加或取消要显示的各项内容,选择后F7(向上移动)、F8(向下移动)、F9(取消显示、F10(保存更改))根据各人需求,显示那些信息。

F3 搜索进程

在界面下按F3或直接输入”/”就可以直接进入搜索模式,是按照进程名进行搜索的。例如

linux网络命令(八)之top、htop_Linux、top、htop_09

搜索到的进程会用设定的颜色标记出来,方便查看。

F4:过滤器

相当于模糊查找,不区分大小写,下方输入要搜索的内容后,则界面只显示搜索到的内容,更加方便查看,例如:

linux网络命令(八)之top、htop_Linux、top、htop_10

F5:以树形方式显示

linux网络命令(八)之top、htop_Linux、top、htop_11

F6:排序方式

linux网络命令(八)之top、htop_Linux、top、htop_12

按下F6后会跳转至上图界面,让您选择以什么方式进行排序,在Sort by下选择您要以什么来排序。

F7,F8:调整进程nice值

   F7表示减小nice值(增大优先级),F8增大nice值(减小优先级),选择某一进程,按F7或F8来增大或减小nice值,nice值范围为-20-19。

F9:杀死进程

   选择某一进程按F9即可杀死此进程。

F10:退出htop

扩展学习:

https://linux.cn/thread-12037-1-1.html

http://my.oschina.net/leejun2005/blog/157910

http://my.oschina.net/leejun2005/blog/157910

http://www.cnblogs.com/me115/p/3842081.html

http://blog.csdn.net/sanshiqiduer/article/details/1933625