【DevOps】linux命令top详解和实例

目录

一、top 命令基本用法

二、top 的输出解读

解释各部分信息

三、交互命令

四、实用示例

1、基本使用

2、按 CPU 使用率排序

3、 按内存使用率排序

4、监控特定用户的进程

5、实时查看特定 PID 的进程

6、调整屏幕刷新间隔

7、显示批处理模式

8、使用配置文件

9、过滤显示特定进程

10、查看和管理多个窗口


Linux 命令 top 是一个非常实用的动态监控系统性能和运行中的进程的工具。它提供了一个实时的视图,显示了系统的关键统计信息,包括 CPU 使用率、内存使用、进程信息等。这个命令对于系统管理员和性能分析非常有帮助。

一、top 命令基本用法

基本的 top 命令会启动一个交互式的界面,该界面默认每 3 秒更新一次(这个时间间隔可以调整)。要启动 top,只需在命令行中输入:

top

二、top 的输出解读

启动 top 命令后,你会看到类似于以下的输出:

top - 15:20:18 up 10 days,  3:42,  5 users,  load average: 0.00, 0.01, 0.05
Tasks: 193 total,   1 running, 192 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.8 us,  0.7 sy,  0.0 ni, 96.3 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :   7976 total,   4671 free,   1603 used,   1702 buff/cache
MiB Swap:   4096 total,   4096 free,      0 used.   5967 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND1087 root      20   0  457392  66420  50876 S   0.0  0.8   0:01.97 Xorg1350 user1     20   0 1632232 229228 157024 S   0.0  2.8   0:13.45 gnome-shell1455 user1     20   0 6491084 526420 176944 S   0.0  6.4   5:18.37 chrome
解释各部分信息
  1. 第一行:系统概览

    • 15:20:18 - 当前时间
    • up 10 days, 3:42 - 系统运行时间,这里是 10 天 3 小时 42 分钟
    • 5 users - 当前登录用户数
    • load average: 0.00, 0.01, 0.05 - 系统平均负载,分别是过去 1 分钟、5 分钟和 15 分钟的平均负载
  2. 第二行:任务(进程)信息

    • 193 total - 总进程数
    • 1 running - 正在运行的进程数
    • 192 sleeping - 休眠的进程数
    • 0 stopped - 停止的进程数
    • 0 zombie - 僵尸进程数
  3. 第三行:CPU 使用情况

    • 2.8 us - 用户空间占用 CPU 的百分比
    • 0.7 sy - 内核空间占用 CPU 的百分比
    • 0.0 ni - 改变过优先级的进程占用 CPU 的百分比
    • 96.3 id - 空闲 CPU 百分比
    • 0.1 wa - 等待输入/输出的 CPU 时间百分比
    • 0.0 hi - 处理硬件中断的 CPU 时间百分比
    • 0.1 si - 处理软件中断的 CPU 时间百分比
    • 0.0 st - 被虚拟机偷去的 CPU 时间百分比
  4. 第四行和第五行:内存和交换空间使用情况

    • MiB Mem : 7976 total - 总内存
    • 4671 free - 空闲内存
    • 1603 used - 使用中的内存
    • 1702 buff/cache - 缓冲/缓存使用的内存
    • MiB Swap: 4096 total - 总交换空间
    • 4096 free - 空闲交换空间
    • 0 used - 使用中的交换空间
    • 5967 avail Mem - 可用内存
  5. 后续行:各个进程的详细信息

    • PID - 进程 ID
    • USER - 运行此进程的用户
    • PR - 进程优先级
    • NI - nice 值,负值表示高优先级,正值表示低优先级
    • VIRT - 虚拟内存使用量(KB)
    • RES - 物理内存使用量(KB)
    • SHR - 共享内存大小(KB)
    • S - 进程状态(S=睡眠,R=运行,Z=僵尸)
    • %CPU - 进程使用的 CPU 百分比
    • %MEM - 进程使用的物理内存百分比
    • TIME+ - 进程使用的 CPU 时间总计
    • COMMAND - 进程名称/命令

三、交互命令

top 命令提供了一系列的交互命令,用户可以在 top 运行时输入这些命令来改变显示的内容或行为:

  • h or ? - 显示帮助信息
  • P - 根据 CPU 使用率排序(默认)
  • M - 根据内存使用率排序
  • T - 根据时间/累计时间排序
  • k - 杀死一个进程,需要后续输入 PID 和 信号
  • f - 进入字段选择模式,选择要显示的列
  • u - 按用户名或 UID 显示进程
  • r - 改变一个进程的 nice 值
  • z - 切换彩色显示
  • c - 切换显示命令完整路径或仅显示命令名
  • d - 改变屏幕刷新间隔
  • q - 退出 top

四、实用示例

以下是一些实用的 top 使用示例,每个示例都详细解释了它的用途和具体的操作方法。

1、基本使用

启动 top,显示当前系统的实时信息,包括进程信息、CPU、内存等:

top

这个命令会进入一个交互式界面,显示系统的概览和各个进程的详细信息。使用这个基本命令时,你可以看到:

  • CPU 的各种时间占比。
  • 内存和交换区的使用情况。
  • 每个进程的 CPU 和内存使用情况。
2、按 CPU 使用率排序

默认情况下,top 命令已经按 CPU 使用率排序。如果你从其他排序方式中切换回来,可以在 top 运行时按 P 键:

top

然后按 P,这将按 %CPU 列的值降序排列所有进程。

3、 按内存使用率排序

在 top 的交互式界面中,按 M 键可以按内存使用率排序。这是监控哪些进程使用了最多内存的快速方法。

操作步骤如下:

  • 打开 top:

    top
    
  • 按 M 键,界面会根据 %MEM 列(内存使用百分比)重新排序。

或者,直接通过命令行选项启动:

top -o %MEM

这条命令直接按内存使用率排序启动 top

4、监控特定用户的进程

如果你只对特定用户的进程感兴趣,可以使用 -u 选项后跟用户名。例如,监控用户 username 的进程:

top -u username

这会过滤显示,只列出由 username 用户启动的进程。

5、实时查看特定 PID 的进程

如果你只关心某个特定的进程(通过 PID 指定),可以使用 -p 选项。例如,要监控 PID 为 1234 的进程:

top -p 1234

这种用法适合追踪某个特定服务或应用程序的性能问题。

6、调整屏幕刷新间隔

top 默认每 3 秒更新一次数据,但你可以通过 -d 选项设置不同的刷新间隔。例如,设置为每秒刷新一次:

top -d 1

这对于更密集的监控需求非常有用,可以让你更灵敏地观察系统性能变化。

7、显示批处理模式

批处理模式 (-b) 用于将 top 的输出用于记录或其他非交互式用途(如脚本处理)。你可以结合 -n 选项来指定更新的次数。例如,获取当前的一次性快照:

top -b -n 1

这条命令让 top 在批处理模式下运行,输出一次当前的全部信息然后退出,非常适合定时任务或一次性性能记录。

8、使用配置文件

如果你经常需要用到特定的 top 设置,可以将这些设置保存在 top 的配置文件中。top 配置文件通常位于 ~/.toprc。运行 top 并进行一些设置(如排序方式、显示字段等),然后在 top 运行时按 W,这会将当前设置保存到配置文件中,以便下次直接使用。

9、过滤显示特定进程

在 top 运行的交互式界面中,你可以按 o 或 O 来添加自定义过滤。例如,要显示所有命令名包含 httpd 的进程:

  • 运行 top:

    top
    
  • 按 o 键,然后输入 COMMAND=httpd

这样会动态过滤并只显示命令名中包含 httpd 的进程。

10、查看和管理多个窗口

top 支持多窗口管理。可以在 top 交互模式下按 A 切换到多窗口显示模式。在这种模式下,你可以使用不同的窗口来监控不同的资源或进程列表。每个窗口都可以有独立的排序和显示设置。

这些示例展示了 top 命令的多面性和强大功能。通过这些示例,你可以更有效地监控和分析系统和进程的性能问题

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

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

相关文章

浅谈@Controller注解和其他四大注解的区别

各位大佬光临寒舍,希望各位能赏脸给个三连,谢谢各位大佬了!!! 目录 1.Spring五大注解的使用约定 2.Controller注解的特别之处 3.总结 1.Spring五大注解的使用约定 Spring的五大注解(Controller&#x…

14.CAS原理

文章目录 CAS原理1.什么是CAS2.Unsafe类中的CAS方法2.1.获取UnSafe实例2.2.调用UnSafe提供的CAS方法2.3.调用Unsafe提供的偏移量相关2.4.CAS无锁编程2.4.1.使用cas进行无锁安全自增案例 CAS原理 由于JVM的synchronized重量级锁设计操作系统内核态下的互斥锁的使用,其…

二分判定+选插冒排序+归并快速堆希尔+计数排序

二分力扣题 一&#xff1a;搜索二维矩阵 74. 搜索二维矩阵 按照题意&#xff1a;直接利用二维数组转换成一维数组进行求解 方法一&#xff1a;普通等于的二分查找 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {t…

io_uring的使用示例及其解释

io_uring的使用示例及其解释 1 io_uring机制1.1 io_uring机制1.2 io_uring系统调用接口功能介绍1.2.1 io_uring_setup()&#xff1a;1.2.2 io_uring_enter()&#xff1a;1.2.3 io_uring_register()&#xff1a; 2 liburing2.1 liburing简介2.2 liburing编译2.2.1 liburing的代码…

基础ArkTS组件:导航栏组件(HarmonyOS学习第三课【3.8】)

Navigation 官方文献 Navigation 组件一般作为页面布局的根容器&#xff0c;它提供了一系列属性方法来设置页面的标题栏、工具栏以及菜单栏的各种展示样式。 Navigation 除了提供了默认的展示样式属性外&#xff0c;它还提供了 CustomBuilder 模式来自定义展示样式 说明 该…

SQLZOO:SELECT from NOBEL Tutorial

数据表&#xff1a;nobel yrsubjectwinner1960ChemistryWillard F. Libby1960LiteratureSaint-John Perse1960MedicineSir Frank Macfarlane Burnet1960MedicinePeter Madawar... Q1 Winners from 1950 Change the query shown so that it displays Nobel prizes for 1950. S…

【Liunx】深入了解 Linux 命令历史:使用 history 命令提高终端效率

这个年纪的我们 爱情跟不上分开的节奏 这个年纪的我们 更珍惜难得的自由 这个年纪的我们 比起从前更容易感动 这个年纪的我们 徘徊在理想与现实之中 不知不觉孤独不再可耻了 不知不觉爸爸的情绪变得脆弱了 不知不觉一把柴米油盐 也成为压力了 不知不觉我们也开始懂事了 …

OCR技术在历史文献数字化中的革命性作用

随着数字化技术的不断发展&#xff0c;历史文献的数字化已成为保存和传播文化遗产的重要途径。其中&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术在历史文献数字化中发挥了革命性的作用&#xff0c;为研究者提供了更广阔的研究空间&#xff0c;推动了历史学研究的发…

kafka安装及收发消息

kafka需要与zookeeper配合使用&#xff0c;但是从2.8版本kafka引入kraft&#xff0c;也就是说在2.8后&#xff0c;zookeeper和kraft都可以管理kafka集群&#xff0c;这里我们依然采用zookeeper来配合kafka。 1、首先我们下载zookeeper 下载地址为 https://zookeeper.apache.org…

智能运维:构建高效统一的运维管理平台

随着信息技术的迅猛发展&#xff0c;企业IT系统的规模和复杂性日益增加&#xff0c;传统的运维模式已难以满足现代企业的需求。为了应对这一挑战&#xff0c;智能运维管理系统应运而生&#xff0c;它通过引入人工智能、大数据、云计算等先进技术&#xff0c;为企业提供高效、智…

三. TensorRT基础入门-剖析ONNX架构并理解ProtoBuf

目录 前言0. 简述1. 执行一下我们的python程序2. ONNX是什么&#xff1f;3. onnx中的各类Proto3.1 理解onnx中的ValueInfoProto3.2 理解onnx中的TensorProto3.3 理解onnx中的NodeProto3.4 理解onnx中的AttributeProto3.5 理解onnx中的GraphProto3.6 理解onnx中的ModelProto 4. …

算法提高之单词接龙

算法提高之单词接龙 核心思想&#xff1a;dfs 预处理每两个字符串之间最短的公共部分长度 求最短公共 最终字符串是最长 dfs所有开头字符串 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 25;int g[N][N…

【js函数name属性】

js函数的name属性 var a{sayName:function(){//函数自带name属性&#xff0c;可以获取函数名&#xff0c;但是不可以获取调用对象console.log(a.sayName.name);}}//函数可以作为对象使用&#xff0c;用.添加属性a.sayName.name2as666;a.sayName.speakfunction(){console.log(a…

Feign 和 OpenFeign 的区别

Feign 和 OpenFeign 都是用来进行服务间调用的客户端库&#xff0c;它们旨在简化HTTP API客户端的编写过程&#xff0c;使得编写对外部服务的接口就像调用本地方法一样简单。尽管它们有相似之处&#xff0c;但也存在一些关键差异&#xff1a; 归属和演进&#xff1a; Feign 最初…

大规模 RGB LED灯控系统 Lumos:创新与智能化的融合

灯控系统&#xff1a;创新与智能化的融合 在现代照明技术不断进步的背景下&#xff0c;灯控系统的应用已经从简单的开关控制&#xff0c;发展到能够进行复杂程控操作的智能化管理。我们推出的新一代灯控解决方案&#xff0c;凭借其高度的可配置性和跨平台兼容性&#xff0c;已…

React Native vs Flutter:2023年移动开发框架对比

React Native 和 Flutter 都是当前流行的跨平台移动应用开发框架&#xff0c;它们使开发者能够使用一套代码库开发同时运行在Android和iOS上的应用。尽管它们的目标相似&#xff0c;但这两个框架在设计理念、性能、生态系统和开发体验等方面有着明显的不同。以下是2023年React …

虚拟化数据恢复—误还原虚拟机快照怎么办?怎么恢复最新虚拟机数据?

虚拟化技术原理是将硬件虚拟化给不同的虚拟机使用&#xff0c;利用虚拟化技术可以在一台物理机上安装多台虚拟机。误操作或者物理机器出现故障都会导致虚拟机不可用&#xff0c;虚拟机中的数据丢失。 虚拟化数据恢复环境&#xff1a; 有一台虚拟机是由物理机迁移到ESXI上面的&a…

【车载开发系列】MCU概念简介

【车载开发系列】MCU概念简介 【车载开发系列】MCU概念简介 【车载开发系列】MCU概念简介一. 概念简介二. MCU发展历史1&#xff09;初始阶段2&#xff09;低性能阶段 三. 单片机的分类及应用四. 单片机的基本功能1&#xff09; Watchdog&#xff08;看门狗定时器&#xff09;2…

除了GET方法,新的HTTP QUERY方法规范发布

近日IETF提交新规范讨论&#xff1a;定义了一种新的 HTTP 方法QUERY&#xff0c;QUERY方法作为一种安全、幂等的请求方法&#xff0c;可以携带请求内容。 大多数情况下&#xff0c;当请求中传送的数据量太大而无法编码到请求的 URI 中时&#xff0c;推荐采取QUERY方式。 例如&a…

pikachu靶场(xss通关教程)

&#xff08;注&#xff1a;若复制注入代码攻击无效&#xff0c;请手动输入注入语句&#xff0c;在英文输入法下&#xff09; 反射型xss(get型) 1.打开网站 发现有个框&#xff0c;然后我们在框中输入一个“1”进行测试&#xff0c; 可以看到提交的数据在url处有显示&#xf…