您的位置:首页 > 运维架构 > Linux

Linux下取代top的进程管理工具 htop

2016-08-30 10:29 489 查看
一、htop 简介

This is htop, an interactive process viewer for Linux. It is a text-mode application (for console or X terminals) and requires ncurses.

Comparison between htop and top

In 'htop' you can scroll the list vertically and horizontally to see all processes and complete command lines.

In 'top' you are subject to a delay for each unassigned key you press (especially annoying when multi-key escape sequences are triggered by accident).

'htop' starts faster ('top' seems to collect data for a while before displaying anything).

In 'htop' you don't need to type the process number to kill a process, in 'top' you do.

In 'htop' you don't need to type the process number or the priority value to renice a process, in 'top' you do.

'htop' supports mouse operation, 'top' doesn't

'top' is older, hence, more used and tested.

htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。

与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

与top相比,htop有以下优点:

可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。

在启动上,比top 更快。

杀进程时不需要输入进程号。

htop 支持鼠标操作。

top 已经很老了。

htop 官网:http://htop.sourceforge.net/

二、htop 安装

a. 源码包安装

# tar zxvf htop-1.0.2.tar.gz

# cd htop-1.0.2

# ./configure





# make && make install





若出现错误:

configure: error: You may want to use --disable-unicode or install libncursesw.

则需安装 ncurses-devel

# yum install ncurses-devel

b. RHEL/CentOS 安装

可以通过 yum install htop 来安装它,但前提是要添加epel 的yum源,具体请参考 CentOS yum 源的配置与使用

# rpm -ivh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL //导入key
# yum install htop

三、htop 参数

键入htop 命令,打开htop。

# htop





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

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

Shortcut KeyFunction KeyDescription中文说明
h, ?F1Invoke htop Help查看htop使用说明
SF2Htop Setup Menuhtop 设定
/F3Search for a Process搜索进程
\F4Incremental process filtering增量进程过滤器
tF5Tree View显示树形结构
<, >F6Sort by a column选择排序方式
[F7Nice - (change priority)可减少nice值,这样就可以提高对应进程的优先级
]F8Nice + (change priority)可增加nice值,这样就可以降低对应进程的优先级
kF9Kill a Process可对进程传递信号
qF10Quit 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 倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然

+, - When in tree view mode, expand or collapse
subtree. When a subtree is collapsed a "+" sign shows to the left of the
process name.

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

u 显示特定用户进程

M 按Memory 使用排序

P 按CPU 使用排序

T 按Time+ 使用排序

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

K 显示/隐藏内核线程

H 显示/隐藏用户线程

Ctrl-L 刷新

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

四、htop 使用

4.1. 显示自带帮助

鼠标点击Help或者按F1 显示自带帮助





4.2. htop 设定

鼠标点击Setup或者按下F2 之后进入htop 设定的页面,Meters
页面设定了顶端的一些信息显示,顶端的显示又分为左右两侧,到底能显示些什么可以在最右侧那栏新增,要新增到上方左侧(F5)或是右侧(F6)都可以,这
就是个人设定的范围了。这里多加了一个时钟。





上方左右两栏的显示方式分为Text Bar Graph Led 四种,下图我就把 cpu memory swap 改成文本模式显示,然后右栏的改成Bar 显示,clock 用LED方式显示。数据显示都差不多,只是这样看有点不习惯了。





关于Display options 的设定,可要根据管理者自己的需要来设定。





颜色选择,除了基本的颜色显示之外,htop 还提供了换面板的功能,其实也只是改变一些色彩显示的设定,虽然说不能自定义到细部的颜色显示,但是至少提供了几种风格可以选择。





最后一项的设定是调整 Columns 的显示,就是在一般htop 指令进来希望可以看到的什么样的数据及信息,字段的调整可以在这边做个人化的设定,一般使用系统默认值就好了。





4.3. 搜索进程

鼠标点击Search 或者按下F3 或者输入"/", 输入进程名进行搜索,例如搜索ssh





4.4. 过滤器

按下F4,进入过滤器,相当于关键字搜索,不区分大小写,例如过滤dev





4.5. 显示树形结构

输入"t"或按下F5,显示树形结构,意思跟pstree 差不多,能看到所有程序树状执行的结构,这对于系统管理来说相当方便,理清程序是如何产生的,当然树状结构的浏览也可以依照其他数据来排序。





4.6. 选择排序方式

按下F6 就可以选择依照什么来排序,最常排序的内容就是cpu 和memory 吧!





4.7 操作进程

F7、F8分别对应nice-和nice+,F9对应kill给进程发信号,选好信号回车就OK了





4.8. 显示某个用户的进程,在左侧选择用户

输入"u",在左侧选择用户





五、Alias top

也许你用惯了top,我们也可以用top来打开htop。

编辑/root/.bashrc文件,添加如下代码

if [ -f /usr/local/bin/htop ]; then
alias top=’/usr/local/bin/htop’
fi


# source /root/.bashrc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: