百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

相见恨晚,你一定没用过的Linux性能监控神器htop

ahcoder 2025-03-19 10:06 36 浏览

一、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即可退出。

更多详细功能,可自行研究。如喜欢,请关注我,定期发布高质量技术文章。

相关推荐

Linux 下如何查看进程的资源限制信息?

简介Linux上的cat/proc/$pid/limits命令提供有关特定进程的资源限制的信息,其中$pid是相关进程的进程ID(pid)。该文件是`/proc文件系统的一部分,该...

Linux入侵排查TOP10误区!90%工程师都踩过坑

导语“删除恶意文件却破坏了关键证据”“盲目重启系统导致攻击链中断”——这些看似合理的操作,可能让入侵排查陷入僵局。据统计,全球90%的Linux工程师在首次应对入侵事件时至少踩中3个排查误区。本文深度...

一文掌握怎么利用Shell脚本实现Linux系统资源监控管理程序

简介:在日常管理Linux服务器时,监控和管理系统资源是确保服务器稳定运行的关键。及时了解CPU、内存、硬盘以及网络的使用情况,可以帮助我们预防系统故障,并找出性能上的瓶颈。虽然有很多专业的监控工具,...

Linux 下的 PM2 完整指南(linuxnmcli)

PM2是Node.js应用的专业级进程管理器,专为生产环境设计,提供应用守护、集群管理、日志监控等核心功能。核心特性应用守护:崩溃时自动重启零秒重载:热更新应用不停机(pm2reload)...

linux中磁盘满了?一招教你快速清理

创作背景:当天部署服务时,发现无法部署,后来经过日志排查后发现服务器磁盘满了,查询资料后进行了清理。话不多说,直接上解决方法。操作一:1.查看磁盘大小:df-h2.直接在最上层进行排序:du-a...

适用于 Linux 的内存分析器:Bytehound

#暑期创作大赛#特征可用于分析内存泄漏,查看内存到底在哪里被消耗,识别临时分配并调查过多的内存碎片收集每次分配和释放以及完整的堆栈跟踪可以动态剔除临时分配,使您能够在很长一段时间内进行分析使用定制的堆...

一文讲清Python在Linux系统CPU、内存和磁盘管理方面的应用实例

摘要:在当今快速发展的IT运维和开发世界里,Linux系统凭借其高效能、高稳定性和开源的特性,在服务器管理、云计算服务以及大数据处理等众多领域中占据了核心位置。随着业务规模扩大,系统资源的监控与管理变...

Linux系统磁盘分区管理LVM概念及扩容操作

LVM的全称为LogicalVolumeManager,逻辑卷管理。它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过L...

ringbuffer 消息队列 内存池 性能优化利器

简约而不简单的ringbuffer最近在研究srsLTE的代码,其中就发现一个有意思的数据结构------ringbuffer。虽然,这是一个很基本的数据结构,但时,它在LTE这种通信协议栈系统中却大...

Rocky Linux 9常用命令备忘录(不定时更新)

RockyLinux9常用命令备忘录(不定时更新)大家好,我是星哥,上次介绍了<RockyLinux9系统安装配置图解教程并做简单配置>:https://mp.weixin.qq...

理解Linux的Memory overcommit(linux reserved-memory)

MemoryOvercommit的意思是操作系统承诺给进程的内存大小超过了实际可用的内存。一个保守的操作系统不会允许memoryovercommit,有多少就分配多少,再申请就没有了,这其实有些浪...

Linux systemd 4 命令深度对比:休眠、睡眠、关

"90%的人不知道Linux关机命令暗藏玄机?三招教你选对保命符"键盘突然没反应?电脑卡成PPT?这些崩溃瞬间可能都怪你选错了系统命令!今天就用咖啡厅偶遇的工程师视角,带你看懂Linu...

一次解决Linux内核内存泄漏实战全过程

什么是内存泄漏:程序向系统申请内存,使用完不需要之后,不释放内存还给系统回收,造成申请的内存被浪费.发现系统中内存使用量随着时间的流逝,消耗的越来越多,例如下图所示:接下来的排查思路是:1.监控系统中...

Linux系列:聊一聊 SystemV 下的进程间共享内存

一:背景1.讲故事昨天在分析一个linux的dump时,看到了这么一话警告,参考如下:0:000>!eeheap-gc***WARNING:Unabletoverifyt...

linux收发网络包过程(linux收包流程)

网络模型由于OSI模型实在太复杂,提出的也只是概念理论上的分层,并没有提供具体的实现方案事实上,我们比较常,也比较实用的是四层模型,即TCP/IP网络模型,Linux系统正是按照这套网络模型...