深入了解 Linux htop 命令:功能、用法与示例

文章目录

  • 深入了解 Linux htop 命令:功能、用法与示例
  • 什么是 htop?
  • htop 的安装
  • htop的基本功能
    • A区:系统资源使用情况
    • B区:系统概览信息
    • C区:进程列表
    • D区:功能键快捷方式
  • 与 top 的对比
  • 常见用法与示例
  • 实际场景应用
  • 高级功能
  • 常见问题与解决方法
  • 总结与建议


深入了解 Linux htop 命令:功能、用法与示例

什么是 htop?

htop 是一个交互式的进程查看工具,用于 Linux 和类 Unix 系统。相比传统的 top 命令,htop 提供了更加直观和用户友好的界面,支持颜色高亮、鼠标操作以及更多可视化功能,适合系统资源的实时监控和管理。


htop 的安装

在不同发行版中安装:

  • Debian/Ubuntu:

    sudo apt update
    sudo apt install htop
    
  • CentOS/RHEL:
    在 CentOS 7 及以上版本:

    sudo yum install epel-release
    sudo yum install htop
    
  • Arch Linux:

    sudo pacman -S htop
    
  • macOS (使用 Homebrew):

    brew install htop
    

htop的基本功能

主界面组成部分:

  • 顶部: 系统资源利用率(CPU、内存、交换分区)。
  • 中部: 进程列表,显示 PID、用户、CPU、内存等信息。
  • 底部: 快捷键列表,显示操作指引。

启动 htop

htop

在这里插入图片描述

A区:系统资源使用情况

  • CPU:各核心的利用率以彩色条形图表示,颜色代表不同类型的负载:
    • 绿色:用户进程负载
    • 蓝色:低优先级(NICE)进程负载
    • 红色:内核负载
  • 内存:当前系统物理内存使用情况,单位为 MB 或 GB。
  • Swap:交换分区的使用情况,通常用来表示物理内存耗尽时的额外内存使用。

B区:系统概览信息

  • 任务总数:当前运行中的任务数量。
  • 线程数:当前系统活跃线程的数量。
  • 平均负载:三个数字分别表示过去 1 分钟、5 分钟和 15 分钟的系统负载。
  • 运行时间:从系统启动到当前的总运行时长,以 days:hours:minutes 格式显示。

C区:进程列表

显示当前系统的所有进程,并提供丰富的列信息:

列名含义
PID进程标识号,唯一标志一个进程
USER进程所有者的用户名
PR进程优先级(越小优先级越高)
NINICE 值,调整优先级的数值
VIRT进程占用的虚拟内存值
RES进程占用的物理内存值
SHR进程使用的共享内存值
S进程状态:S=休眠,R=运行,Z=僵尸,N=负 NICE 值
%CPU进程占用 CPU 的使用率
%MEM进程占用的内存比例(物理内存)
TIME+进程启动后占用的总 CPU 时间
COMMAND进程的启动命令及其参数

D区:功能键快捷方式

通过底部列出的功能键,用户可以快速完成不同的操作:

快捷键功能
F1查看帮助文档
F2进入设置菜单,调整界面显示及列排序
F3搜索特定进程
F4筛选进程(支持关键字过滤)
F5切换到树状视图
F6更改排序列(默认按 CPU 使用率排序)
F7增加 NICE 值(降低优先级)
F8减少 NICE 值(提高优先级)
F9终止选定进程
F10退出 htop 界面

与 top 的对比

功能htoptop
界面彩色界面,支持鼠标操作文本界面,仅支持键盘
操作方式交互式,支持选择性操作需要记住更多快捷键
可定制性高,可通过配置文件调整显示样式低,仅支持命令行选项
功能扩展支持水平/垂直滚动查看进程无滚动功能,显示有限

常见用法与示例

1. 按用户筛选进程:

htop --user=mysql

在这里插入图片描述

2. 按优先级排序:
启动后按 F6,选择 PRINICE 列。
sort by 选择列
在这里插入图片描述

3. 显示特定进程树:
F5 切换到树状视图,方便查看进程的父子关系。
在这里插入图片描述

4. 自定义显示列:
F2 进入设置菜单,选择“Columns”以调整需要显示的列。

5. 保存配置:
htop 的配置文件位于 ~/.config/htop/htoprc。您可以手动编辑,或通过 F2 配置后自动保存。

6.指定进程:

htop -p 1

在这里插入图片描述
7.指定刷新间隔

# 5秒刷新
htop -d 50

在这里插入图片描述


实际场景应用

1. 定位高 CPU 占用进程:
在界面中按 F6,选择 CPU 排序。高亮显示的进程即是高占用者。

2. 内存不足时查找问题进程:
F6 选择内存排序,查找内存消耗异常的进程。

3. 多核心 CPU 负载监控:
顶部显示所有 CPU 核心的利用率,可以快速判断负载分布是否均衡。

4. 批量终止进程:
通过 Space 键选中多个进程后,按 F9 一次性终止。


高级功能

1. 设置进程优先级:
选中目标进程,按 F7 降低优先级(增加 NICE 值),按 F8 提高优先级(减小 NICE 值)。

2. 网络 IO 和磁盘 IO 监控:
在设置菜单中启用相关列(如 IO_Read、IO_Write)以监控进程的网络和磁盘操作。

3. 远程服务器监控:
通过 SSH 登录远程服务器后直接运行 htop 监控远程主机资源。

ssh user@remote-server
htop

常见问题与解决方法

问题 1:启动时提示找不到命令
确保已安装 htop,并将其路径加入 PATH 环境变量。

问题 2:无法终止某些进程
尝试使用更高权限运行 htop

sudo htop

总结与建议

htop 是一款强大且易用的工具,无论是新手还是资深系统管理员,都能在日常管理中受益匪浅。其直观的界面和灵活的交互方式,使得资源监控、问题排查以及系统优化更加高效。

建议在日常使用中,结合 htop 的快捷键和筛选功能,以快速定位问题,提高工作效率。


欢迎留言讨论 😊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/61552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】【RKNN】【C++】模型转化、环境搭建以及模型部署的详细教程

【深度学习】【RKNN】【C】模型转化、环境搭建以及模型部署的详细教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【RKNN】【C】模型转化、环境搭建以及模型部署的详细教程前言模型转换--pytorch转rknnpytorch转onnxonnx转rkn…

【spark】远程debug spark任务(含有pyspark)

--master yarn和--master client都是可以的。 spark-submit \ --master yarn \ --deploy-mode client \ --name "test-remote-debug" \ --conf "spark.driver.extraJavaOptions-agentlib:jdwptransportdt_socket,servery,suspendn,address5005" \ --conf …

如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目

如约介绍源码构建 Infinite-ISP 项目,其实大家等的是源码,所以中间过程简洁略过,可以直接翻到文末获取链接。 开源ISP(Infinite-ISP)介绍 构建工程 第一步,从文末或者下面链接获取源码 https://github.com/…

彻底理解Redis的持久化方式

一.由来 因为Redis之所以能够提供高效读写的操作,是因为它是基于内存的,但是这样也会带来一个问题,及在服务器宕机或者重启的情况下,内存里面的数据就会被丢失掉,所以为了解决这个问题,Redis就提供了持久化…

Bug Fix 20241122:缺少lib文件错误

今天有朋友提醒才突然发现 gitee 上传的代码存在两个很严重,同时也很低级的错误。 因为gitee的默认设置不允许二进制文件的提交, 所以PH47框架下的库文件(各逻辑层的库文件),以及Stm32Cube驱动的库文件都没上传到Gi…

Go语言中的引用类型:指针与传递机制

在Go语言中,有一些特殊的数据类型,它们在内存中的表示方式与传统的值类型(如int、float、bool等)有所不同。这些类型被称为引用类型,包括map、chan、函数、接口和切片(slice)。尽管Go语言的官方…

YOLOv7-0.1部分代码阅读笔记-test.py

test.py test.py 目录 test.py 1.所需的库和模块 2.def test(data, weightsNone, batch_size32, imgsz640, conf_thres0.001, iou_thres0.6, save_jsonFalse, single_clsFalse, augmentFalse, verboseFalse, modelNone, dataloaderNone, save_dirPath(), save_txtFalse, s…

JAVA中的Lamda表达式

JAVA中的Lamda表达式 Lambda 表达式的语法使用场景示例代码1.代替匿名内部类2. 带参数的 Lambda 表达式3. 与集合框架结合使用4. 使用 Stream 操作 总结 Java 的 Lambda 表达式是 Java 8 引入的一个新特性,用于简化代码,特别是在处理函数式编程时。Lambd…

在Linux配置NGINX的证书

1、检查 Nginx 是否支持 SSL 模块 首先,检查当前安装的 Nginx 是否支持 SSL 模块。运行以下命令: nginx -V 2>&1 | grep -o with-http_ssl_module 如果输出为空,说明 Nginx 没有编译 SSL 模块。 2. 重新编译 Nginx 以启用 SSL 模块 如…

NVR管理平台EasyNVR多个NVR同时管理:全方位安防监控视频融合云平台方案

EasyNVR是基于端-边-云一体化架构的安防监控视频融合云平台,具有简单轻量的部署方式与多样的功能,支持多种协议(如GB28181、RTSP、Onvif、RTMP)和设备类型(IPC、NVR等),提供视频直播、录像、回放…

微服务架构:10个实用设计模式

1 微服务架构 微服务架构的重要特征 微服务架构的优点 微服务架构的缺点 何时使用微服务架构 2 微服务架构的设计模式 独享数据库(Database per Microservice) 事件源(Event Sourcing) 命令和查询职责分离(CQRS&…

华为欧拉系统使用U盘制作引导安装华为欧拉操作系统

今天记录一下通过U盘来安装华为欧拉操作系统 华为欧拉操作系统是国产的一个类似于Centos的Linus系统 具体实现操作步骤: 先在官网下载欧拉系统镜像点击跳转到下载 准备好一个大于16g的U盘 ,用于制作U盘启动 下载一个引导程序制作工具,我使用…

20241121 android中树结构列表(使用recyclerView实现)

1、adapter-item的布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"wrap_content&…

Spring Boot核心概念:应用配置

Spring Boot提供了强大的配置系统&#xff0c;允许开发者通过配置文件轻松管理应用的配置。支持的主要配置文件格式有两种&#xff1a;application.properties和application.yml。 application.properties与application.yml application.properties和application.yml是Spring…

C++初阶学习 第十二弹——stack与queue的介绍和使用

目录 一、stack&#xff08;栈&#xff09; 1.栈的概念&#xff1a; 2.成员函数包括&#xff1a; 3.栈的使用示例: 4. 使用时的注意事项&#xff1a; 二.queue&#xff08;队列&#xff09; 1.队列的概念 2.成员函数 3.队列的使用示例 4.使用时的注意事项 三.总结…

如何实现点击目录跳转到指定位置?【vue】

需求&#xff1a;实现目录点击跳转到指定位置&#xff0c;点击后直接定位到指定模块 效果&#xff1a; 实现方法&#xff1a; &#xff08;1&#xff09;a标签跳转 普通使用&#xff1a; <!DOCTYPE html> <html><head><title>a-Demo</title>&l…

性能测试场景设计:打造高效、稳定的系统架构

在软件开发过程中&#xff0c;性能测试是确保系统高效运行的关键步骤。通过模拟真实用户负载&#xff0c;我们可以评估系统的响应时间、吞吐量和资源利用率等关键指标。本文将详细介绍如何设计一个全面的性能测试场景&#xff0c;以帮助您识别潜在的性能瓶颈并优化系统性能。 …

uni-app如何向Vue那样操作dom节点

2024年8月2日 引言 一般节点渲染出来后&#xff0c;其样式多为固定。如果之后想进行样式变化&#xff0c;在Vue.js框架中&#xff0c;就可以在js模块用document API获取节点进行操作。但是uni-app并没有document这样的API&#xff0c;所以当碰到这种需要在js模块对节点进行操…

【SKFramework框架】二、快速启动

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群&#xff1a;398291828小红书小破站 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…

鸿蒙多线程开发——线程间数据通信对象02

1、前 言 本文的讨论是接续鸿蒙多线程开发——线程间数据通信对象01的讨论。在上一篇文章中&#xff0c;我们讨论了常规的JS对象(普通JSON对象、Object、Map、Array等)、ArrayBuffer。其中讨论了ArrayBuffer的复制传输和转移传输方式。 下面&#xff0c;我们将讨论SharedArra…