以最小的代价换取最大的收益


运维实用技巧之Htop详解


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

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

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

2. htop安装

yum -y install ncurses-devel #htop依赖ncurses
wget http://superb-dca3.dl.sourceforge.net/project/htop/htop/1.0.2/htop-1.0.2.tar.gz
tar xzf htop-1.0.2.tar.gz
cd htop-1.0.2
./configure
make && make install


安装好htop之后,直接/etc/bashrc中设置别名即可,凭个人喜好而定。不过还是挺实用的,这里演示下:

#编辑/etc/bashrc文件,在最后添加上一行
[root@nick tmp]# vim /etc/bashrc
aliastop='/usr/bin/htop'
#查看结果
[root@nick tmp]# cat /etc/bashrc | tail -2
# vim:ts=4:sw=4
aliastop='/usr/bin/htop'
#使之生效
[root@nick tmp]# . /etc/bashrc




3.与传统top区别


htop 包含的优点有(与top相比较):

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

   在启动上,比 top 更快。    

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

   htop 支持鼠标操作。


下面是 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倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然
+, -在树形模式下,展开或折叠子树
a (在有多处理器的机器上)设置 CPU affinity: 标记一个进程允许使用哪些CPU
u显示特定用户进程
M按Memory使用排序
P按CPU使用排序
T按Time+使用排序
F跟踪进程: 如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用:通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能
K显示/隐藏内核线程
H显示/隐藏用户线程
Ctrl-L刷新
NumbersPID 查找: 输入PID,光标将移动到相应的进程上


4.htop页面信息解释

092723677.jpg

5.htop的使用方法简介

092829344.jpg

下面左上角显示CPU、内存、交换区的使用情况,右边显示任务、负载、开机时间;下面就是进程实时状况
鼠标点击HELP显示自带帮助:

wKioL1NcrTXR4sKJAApX5tw4H5k871.jpg


常用命令示例:

搜索程序名(高亮显示)

093057846.jpg

t:树形结构显示程序

093159297.jpg

u:显示某用户的进程

093239757.jpg

F4:过滤(可以单独显示过滤出的信息)

093613630.jpg

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

wKioL1NcrcGD9NmuAAo8dA3PSaQ661.jpg

还支持实时attach进程,用strace追踪进程的系统调用,选择进程然后按s:

wKiom1NcrhehYZP_AAa9l3OYzac483.jpg