1. htop简介
Htop是一款运行于Linux系统监控与进程管理软件,用于取代Unix下传统的top。与top只提供最消耗资源的进程列表不同,htop提供所有进程的列表,并且使用彩色标识出处理器、swap和内存状态。

用户一般可以在top无法提供详尽系统信息的情况下选择安装并使用htop。比如,在查找应用程序的内存泄漏问题时。与top相比,htop提供更方便、光标控制的界面来杀死进程。

htop用C语言编写,采用了ncurses库。htop的名称源于其作者的名字。

2、htop的安装:apt-get install htop

3、htop的使用:

htop常用功能键

F1 : 查看htop使用说明
            F2 : 设置
            F3 : 搜索进程
            F4 : 过滤器,按关键字搜索
            F5 : 显示树形结构
            F6 : 选择排序方式
            F7 : 减少nice值,这样就可以提高对应进程的优先级
            F8 : 增加nice值,这样可以降低对应进程的优先级
            F9 : 杀掉选中的进程
            F10 : 退出htop

            / : 搜索字符
            h : 显示帮助
            l :显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件
            u :显示所有用户,并可以选择某一特定用户的进程
            s : 将调用strace追踪进程的系统调用
            t : 显示树形结构

            H :显示/隐藏用户线程
            I :倒转排序顺序
            K :显示/隐藏内核线程    
            M :按内存占用排序
            P :按CPU排序    
            T :按运行时间排序

            上下键或PgUP, PgDn : 移动选中进程
            左右键或Home, End : 移动列表    
            Space(空格) : 标记/取消标记一个进程。命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程



上面左上角显示CPU、内存、Swap使用情况,右边显示任务、负载、开机时间,下面就是进程实时状况。
下面是 F1~F10 的功能和对应的字母快捷键。

Shortcut Key

Function Key

Description

中文说明

h, ?

F1

Invoke htop Help

查看htop使用说明

S

F2

Htop Setup Menu

htop 设定

/

F3

Search for a Process

搜索进程

\

F4

Incremental process filtering

增量进程过滤器

t

F5

Tree View

显示树形结构

<, >

F6

Sort by a column

选择排序方式

[

F7

Nice – (change priority)

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

]

F8

Nice + (change priority)

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

k

F9

Kill a Process

可对进程传递信号

q

F10

Quit htop

结束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,光标将移动到相应的进程上

htop使用备忘


1 防止进程重复显示

在使用htop查看进程信息的时候,经常会出现很多个进程重复的情况,如下情况:

经研究发现,htop会把一个进程里的线程当做一个进程来显示出来,上图中的java进程有多个线程,所以htop显示了多个进程。

这个特性对于分析进程性能很不有利, 所以我们要关掉它。

好在htop也是提供了一个方法来设置这个选项。

按F2

选择

选择

如下图所示

这样以后,在htop的进程列表里再也看不见一堆重复的进程了

2 数据说明

第一行与第二行,显示CPU当前的运行负载,我这里是双CPU就显示两行!

第三行,显示内存的使用情况!

第四行,显示交换分区使用情况!

第一行,显示了当前的进程总数,其中有一个进程在运行!

第二行,显示了当前的负载情况,分别代表了,1分钟,5分钟,15分钟负载!

第三行,显示了系统的运行的时间!

PID:进行的标识号


USER:运行此进程的用户


PRI:进程的优先级


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


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


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


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


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


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


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


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


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


3 参数说明

数据刷新时间

显示用户aurain的所属进程

按Memory 使用排序

按CPU 使用排序

按Time+ 使用排序

按进程名搜索

直接输入数字 光标将定位于该PID的进程

退出

4 参考说明

VIRT:虚拟内存virtual memory usage。一个应用占有的地址空间,只是要应用程序要求的,就全算在这里,而不管它真的用了没有。

RES:常驻内存resident memory usage。这个值就是该应用程序真正使用的内存,但还有两个小问题,一是有些东西可能放在交换盘上了(SWAP),二是有些内存可能是共享的。

SHR:shared memory。共享内存。就是说这一块内存空间有可能也被其他应用程序使用着;而Virt - Shr似乎就是这个程序所要求的并且没有共享的内存空间。