一、htop的优势与安装
htop是Linux系统中的一个互动的进程查看器,与Linux传统的top相比,htop更加人性化,它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
htop相比较top的优势:
可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。
在启动上比top更快。
杀进程时不需要输入进程号。
htop支持鼠标选中操作。
top已不再维护。
Htop项目地址是
https://github.com/hishamhm/htop, 要使用htop,既可以通过源码包编译安装,也可以配置好yum源后网络下载安装,推荐yum方式安装,但是要下载一个epel源,因为htop包含在epel源中。安装很简单,这里以centos7.x版本为例,命令如下:
[root@localhost ~]# yum install epel-release
[root@localhost ~]# yum install -y htop
安装完成后,命令行中直接敲击htop命令,即可进入htop的界面。
二、htop的使用
htop命令安装好以后,直接输入htop,即可打开如下界面:
从图中可以看出,htop命令总共分了5个展示区,分别是cpu展示区、内存展示区、整体状态区、进程状态区和管理控制台。
htop命令支持键盘输入和鼠标点击,首先看一下CPU展示区,htop可以通过进度条展示每个CPU逻辑核的使用百分比,并且通过不同颜色进行区分,其中,蓝色的表示low-prority使用,绿色的表示normal使用情况,红色的表示kernel使用情况,青色的表示vistualiz使用情况。从图中输出可在,此服务器有32个逻辑核。
接着是内存展示区,主要是物理内存和swap的状态,同样也使用了不同颜色来区分是使用情况,其中Mem项中,绿色的表示已经使用内存情况,蓝色的表示用于缓冲的内存使用情况,黄色的表示用于缓存的内存使用情况。从图中可知,此服务器有72Gb内存。而Swap项中,主要显示交换分区使用情况,如果使用过大,那么可能需要增加内存了。
然后看整体状态区,其中,Tasks项显示的是进程总数,当前运行的进程数、Load average项展示的是系统1分钟,5分钟,10分钟的平均负载情况、Uptime为系统运行了多长时间。
最后看下进行状态区和管理控制台,进程状态区展示当前系统中的所有进程,默认有12列组成,每列代表的含义如下:
PID:进程标志号,是非零正整数
USER:进程所有者的用户名
PR:进程的优先级别
NI:进程的优先级别数值
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程使用的共享内存值
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
%CPU:该进程占用的CPU使用率
%MEM:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称
管理控制台控制着进程的展示方式,可以看到,在进程控制台有F1~F10共10个功能键。每个按键含义如下:
快捷键 | 按键 | 功能说明 |
h, ? | F1 | 查看htop使用说明 |
S | F2 | htop 设定 |
/ | F3 | 搜索进程 |
\ | F4 | 进程过滤器 |
t | F5 | 显示树形结构 |
<,> | F6 | 折叠或展开(新版本),或选择排序方式(老版本) |
[ | F7 | 可减少nice值,这样就可以提高对应进程的优先级 |
] | F8 | 可增加nice值,这样就可以降低对应进程的优先级 |
k | F9 | 可对进程传递信号 |
q | F10 | 结束htop,退出 |
要对htop的输出和展示进行设置,可鼠标点击管理控制台下的Setup或者按下F2键, 之后即可进入htop 设定的页面,Meters页面设定了顶端的一些信息显示,顶端的显示又分为左右两侧,到底能显示些什么可以在最右侧那栏新增,要新增到上方左侧(按键F5即可)或是右侧(按键F6即可)都可以,这就是个人设定的范围了。这里多加了一个时钟。如下图所示:
从图中可以看出,上方左右两栏的显示方式分为Text、 Bar、Graph、Led四种,可根据需要选择展示的方式。
接着是Display options 的设定,可以根据运维自己的需要来设定。如下图所示:
这个设置主页是定义进程展示的方式,常用的有树形结构显示进程、不隐藏用户线程、以不同颜色显示线程等几个选项。设置完成后,进程区域显示如下:
从上图可以看出,进程和线程一目了然,并且以树形结构展示出来了,同时,对线程的PID、占用CPU百分比、内存百分比、运行时间等属性也都一一展示出来了,这非常有助于对应用系统运行状态的掌握和判断。
为了能更清晰确认进程和线程的关系,按键F2,打开Columns的设定,如下图所示:
这里新增一列,列名是TGID,也就是线程的group id,然后按键F10保存返回到进程展示区界面,如下图所示:
如上图,可以发现,进程展示区多了TGID一列信息,这就是线程对应的group id,从这个id可以看出,进程和线程之间的关系和区别。
接着,鼠标点击Search或者按下F3, 即可进行搜索操作,输入进程名进行搜索,例如搜索zabbix进程,如下图所示:
如上图所示,已经搜索到了zabbix对应的进程信息,这就是搜索功能,跟搜索类似的还有一个过滤器功能,按键F4,即可进入过滤器,其实相当于关键字索引,不区分大小写,如果筛选条件一直保存,可以通过Esc键清除,如下图所示:
要显示树形结构,还有更简单的方式,那就是输入"t"或按下F5,即可显示树形结构,效果和pstree命令差不多,父、子进程可以列出来。如下图所示:
htop还可以对某进行进行折叠或展开(新版本htop2.x),或者指定排序方式(老版本htop1.x),按键F6就可以指定目标条件展示或折叠。
htop可以操作进程,例如对进程的优先级进行设置,通过按键F7可调高优先级nice-,按键F8可调低优先级nice+,而通过按键F9可以kill选中的进程。如下图所示:
最后,htop还可以显示指定用户的所有进程,在htop界面,键盘输入"u",即可在左侧选择用户,那么就会展示此用户的所有进程信息。例如要查询zabbix用户的所有进程信息,如下图所示:
要退出htop界面,可直接按键F10即可退出。
更多详细功能,可自行研究。如喜欢,请关注我,定期发布高质量技术文章。