linux运维一天一个shell命令之 top详解

概念:

top 命令是 Unix 和类 Unix 操作系统(如 Linux、macOS)中一个常用的系统监控工具,它提供了一个动态的实时视图,显示系统的整体性能信息,如 CPU 使用率、内存使用情况、进程列表等。

基本用法

root@xxx:~# top
top - 18:54:15 up 12 days,  4:10,  1 user,  load average: 0.04, 0.10, 0.14
Tasks: 594 total,   1 running, 344 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 46087936 total, 22898740 free,  1414488 used, 21774708 buff/cache
KiB Swap: 51999996 total, 51999996 free,        0 used. 42175156 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
241197 root      20   0   31980   4308   3312 R   0.3  0.0   0:00.06 top                                                                                                                                                                   1 root      20   0  178264   7040   4228 S   0.0  0.0  11:14.29 systemd
........

#启动top命令后,你会看到一个像这样的界面(实际输出可能因系统和配置的不同而略有差异)

界面各部分的解释

系统摘要信息

top - 18:54:15 up 12 days,  4:10,  1 user,  load average: 0.04, 0.10, 0.14
当前时间:18:54:15
系统运行时间:up 12 days, 4:10
登录用户数:1 users
系统负载平均值:load average: 0.04, 0.10, 0.14(分别是1分钟、5分钟和15分钟的平均负载)

任务信息

Tasks: 594 total,   1 running, 344 sleeping,   0 stopped,   0 zombie
任务总数: 594 total
运行中的任务:1 running
睡眠中的任务:344 sleeping
停止的任务:0 stopped
僵尸任务:0 zombie

CPU 使用率

%Cpu(s):  0.1 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
用户态CPU时间(user space):0.1% us  (用户态占用CPU的时间,即用户进程或应用程序执行的时间。当应用程序正在执行时,CPU处于用户态)
系统态CPU时间(system space):0.0% sy  (系统态占用CPU的时间,即操作系统内核进程执行的时间。当操作系统内核进程正在执行时,CPU处于系统态)
低优先级用户态时间(nice):0.0% ni  (改变过优先级的进程所占用的CPU时间。nice值用于调整进程的优先级,低nice值的进程具有较高的优先级)
空闲时间:99.9% id   (空闲时间,即CPU没有执行任何任务的时间。这是CPU未被占用的时间)
I/O等待时间:0.0% wa  (等待I/O操作完成的时间,即CPU等待输入输出操作完成的时间。当CPU等待磁盘读写等I/O操作完成时,会处于等待状态)
硬中断时间:0.0% hi   (处理硬件中断所花费的时间。硬件中断是由硬件产生的中断,如时钟中断或键盘中断)
软中断时间:0.0% si  (处理软件中断所花费的时间。软件中断是由操作系统产生的中断,用于处理各种系统事件)
虚拟机偷取时间:0.0% st (虚拟化环境中,其他虚拟机占用的CPU时间。在虚拟化环境中,多个虚拟机共享物理资源,其中一些时间可能被其他虚拟机占用)

内存使用情况

KiB Mem : 46087936 total, 22898740 free,  1414488 used, 21774708 buff/cache总内存:46087936 KiB
空闲内存:22898740 KiB
已用内存:1414488 KiB
缓存和缓冲区内存:21774708 KiBKiB Swap: 51999996 total, 51999996 free,        0 used. 42175156 avail Mem
总交换空间:51999996 KiB
空闲交换空间:51999996 KiB
已用交换空间:0 KiB
可用内存:42175156 KiB

进程列表

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 
1 root      20   0  178264   7040   4228 S   0.0  0.0  11:14.29 systemd每个进程的详细信息,包括:
PID: 进程PID编号
USER: 进程所有者
PR:优先级
NI: nice值
VIRT:虚拟内存大小 (Kb)
RES:常驻内存大小 (Kb)
SHR:共享内存大小(Kb)
S:进程状态
%CPU:CPU使用率
%MEM:内存使用率
TIME+:运行时间
COMMAND: 命令名/命令行##S:进程状态:
运行状态:R (Running or Runnable) 进程正在 CPU 上运行或准备运行。它处于可执行状态,等待分配 CPU 时间片。
中断状态:S (Interruptible Sleep) 进程正在等待某个事件(如 I/O 操作)完成,可以被中断。
不可中断睡眠状态:D (Uninterruptible Sleep) 进程正在等待某些条件(通常是 I/O 操作)完成,不能被中断。
停止状态:T (Stopped) 进程已停止,通常是因为接收到 SIGSTOP 或 SIGTSTP 信号。这可能是因为用户手动暂停了进程(如按 Ctrl+Z)。
僵尸状态:Z (Zombie) 进程已终止,但其进程描述符仍保留,等待父进程读取其退出状态。僵尸进程占用很少的系统资源,但大量的僵尸进程可能会导致系统问题。
催眠状态:t (Traced or Stopped) 进程被调试器(如 gdb)追踪,或者已经被停止。
终止状态:X (Dead) 进程已经终止,但这种状态很少见
W (Paging) 进程没有足够的内存资源,这是在旧版 Linux 中的一种状态,在现代系统中不常见

交互命令

在 top 运行时,你可以输入一些命令来更改视图或执行特定操作:

改变排序列

P:按 CPU 使用率排序。
M:按内存使用率排序。
T:按运行时间排序。
N:按 PID 排序。

过滤进程

o:添加过滤条件。它会提示你输入过滤条件(如 COMMAND=top)。
=:移除所有过滤条件。

改变显示内容

f:进入字段管理界面,可以选择显示或隐藏特定字段。
A:自动切换窗口。
W:将当前设置写入配置文件。下次运行 top 时会自动加载这些设置。

调整刷新时间

d:设置屏幕刷新间隔时间(秒)。

显示线程

H:切换显示每个进程的线程信息。

改变显示模式

c:切换显示完整的命令行或仅显示命令名。
1:显示每个 CPU 的使用情况。
i:切换显示闲置和僵尸进程。

终止进程

k:终止一个进程。它会提示你输入进程ID (PID) 和信号。

改变进程优先级

r:调整一个进程的优先级(renice)。它会提示你输入进程ID 和新的 nice 值。

常用top命令行参数

  1. -d <delay>
  • 说明:设置屏幕刷新间隔时间(秒)。
  • 使用示例:
top -d 1

这个命令将 top 的刷新间隔设置为1秒。

  1. -p <PID>
  • 说明:只监控指定的进程。
  • 使用示例:
top -p 1

这个命令只显示 PID 为 1 的进程。

  1. -u <user>
  • 说明:只显示特定用户的进程。
  • 使用示例:
top -u root

这个命令只显示 username 用户的进程。

  1. -n <number>
  • 说明:更新的次数,达到指定次数后退出。
  • 使用示例:
top -n 5

这个命令会更新5次后退出。

  1. -b
  • 说明:以批处理模式运行,通常用于脚本和重定向输出。
  • 使用示例:
top -b -n 1 > top_output.txt

这个命令会以批处理模式运行一次,并将输出重定向到 top_output.txt 文件。

  1. -i
  • 说明:忽略闲置和僵尸进程。
  • 使用示例:
top -i

这个命令会忽略空闲和僵尸进程的显示。

  1. -H
  • 说明:显示线程信息。
  • 使用示例:
top -H

这个命令会显示每个进程的线程信息。

  1. -c
  • 说明:切换显示完整的命令行。
  • 使用示例:
top -c

这个命令会切换显示每个进程的完整命令行。

  1. -o <field>
  • 说明:按指定字段排序。
  • 使用示例:
top -o %CPU

这个命令会按 CPU 使用率排序进程。

  1. -w [number]
  • 说明:指定输出的宽度。-w 160 强制输出160字符宽,-w 表示自动调整宽度。
  • 使用示例:
top -w 120

这个命令会将输出宽度设置为120字符。

top组合技:

示例

  • 假设你想要监控特定用户 root 的进程,并且希望输出刷新间隔为 2 秒,同时输出到一个文件中。你可以使用以下命令:
    top -b -n 10 -d 2 -u root > root_processes.txt
  • 这个命令的具体解释如下:
-b:以批处理模式运行。
-n 10:更新10次后退出。
-d 2:每2秒刷新一次。
-u user1:只显示 user1 用户的进程。
> root_processes.txt:将输出重定向到 root_processes.txt 文件

配置文件

top 命令允许你保存当前配置,这样下次运行 top 时会自动加载这些配置。保存当前配置的方法是按 W 键,这会将配置写入 ~/.toprc 文件

root@xxx:~# cat ~/.toprc
top's Config File (Linux processes with windows)
Id:i, Mode_altscr=0, Mode_irixps=1, Delay_time=3.0, Curwin=0
Def     fieldscur=&')*+,-./012568<>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijwinflags=193844, sortindx=18, maxtasks=0, graph_cpus=0, graph_mems=1summclr=1, msgsclr=1, headclr=3, taskclr=1
Job     fieldscur=Ļ,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijwinflags=193844, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=0summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem     fieldscur=()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghijwinflags=193844, sortindx=21, maxtasks=0, graph_cpus=0, graph_mems=0summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr     fieldscur=+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijwinflags=193844, sortindx=3, maxtasks=0, graph_cpus=0, graph_mems=0summclr=3, msgsclr=3, headclr=2, taskclr=3
Fixed_widest=0, Summ_mscale=0, Task_mscale=0, Zero_suppress=0

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

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

相关文章

【A1web 1.0】靶机复现详解!

靶机地址&#xff1a; https://www.vulnhub.com/entry/ai-web-1,353/攻击机&#xff1a;kali 首先虚拟机建一个A1web 1.0靶机 切换nat模式 然后kali扫描 nmap -sV ip段 0/24 扫描出ip进行访问 访问没有什么信息 使用dirb 对网页…

使用 Matlab 绘制带有纹理的柱状图

以下是效果 1. 在 Matlab 里安装两个额外的库&#xff1a; hatchfill2 和 legendflex。 &#xff08;1&#xff09;搜索并安装 hatchfill2&#xff0c;用来画纹理 (2) 搜索并安装 legendflex&#xff0c;用来画自定义的图例 2. 代码&#xff08;说明见注释&#xff09; data …

排序算法辨析(快速记忆版)(冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序)保研面经

选择排序&#xff1a;摸到一叠牌&#xff0c;每次选择出最小的放在合适的位置&#xff08;第一次放在第一张&#xff0c;第二次放在第二张&#xff09;&#xff0c;实现排序 最好最坏都是 O&#xff08;n^2&#xff09; 插入排序&#xff1a;摸牌的时候一张一张摸&#xff0c;每…

每日Attention学习14——Efficient Self-Attention

模块出处 [MICCAI 22] [link] [code] Lesion-aware Dynamic Kernel for Polyp Segmentation 模块名称 Efficient Self-Attention (ESA) 模块作用 高效自注意力 模块结构 模块思想 Self Attention操作在具有优秀的长距离建模能力的同时&#xff0c;也有着较高的计算与内存成…

【DevOps工具链】DevOps工具链的基本组成与功能

DevOps工具链 DevOps工具链的基本组成与功能 目录 引言DevOps概述DevOps工具链组成 版本控制持续集成持续交付与部署配置管理监控与日志管理 典型DevOps工具介绍 GitJenkinsDockerKubernetesAnsiblePrometheus和Grafana DevOps工具链的最佳实践结论 引言 在现代软件开发中&…

缓存策略自定义:Laravel应用性能优化秘籍

缓存策略自定义&#xff1a;Laravel应用性能优化秘籍 在现代Web应用中&#xff0c;缓存是一种提高应用性能和响应速度的有效手段。Laravel框架提供了强大的缓存机制&#xff0c;支持多种缓存驱动&#xff0c;如文件、数据库、Redis等。然而&#xff0c;在某些情况下&#xff0…

Vue 3 状态管理 Pinia 详解

引言 随着 Vue 3 的推出&#xff0c;Pinia 成为了 Vue 社区中一个备受瞩目的状态管理库。它简洁而强大&#xff0c;旨在替代 Vuex&#xff0c;为开发者提供更加灵活的状态管理解决方案。本文将详细介绍 Pinia 的核心概念、安装方法、使用技巧以及如何在 Vue 3 项目中集成 Pini…

学习ruixingkafei过程

一、抓包 手机安装证书&#xff0c;开启VPN抓包&#xff0c;电脑上打开花瓶&#xff0c;在同一个局域网内抓包&#xff0c;这些老一套没什么可说的。 看看我们的抓包结果是不是很美丽&#xff0c;请求内容加密&#xff0c;返回内容也加密&#xff0c;猜测加密方式aes&#xff0…

JWT (JSON Web Token)

&#x1f3bc;个人主页&#xff1a;金灰 &#x1f60e;作者简介:一名简单的大一学生;易编橙终身成长社群的嘉宾.✨ 专注网络空间安全服务,期待与您的交流分享~ 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持&#xff01;❤️ &#x1f34a;易编橙终身成长社群&#…

AI绘画3分钟解决英文恐惧症,comfyui汉化插件

前言 全面解析&#xff1a;Comfy UI汉化插件的安装与配置指南 本文涉及的工作流和插件&#xff0c;需要的朋友请扫描免费获取哦 引言 本文图片来源网络&#xff0c;侵权联删除。 在全球化的今天&#xff0c;软件界面的本地化是提升用户体验的重要一环。对于许多非英语母语的…

Java面试题基础

基础总结 Java Java 平台无关性 主要通过三个方面实现. Java 语言规范&#xff1a; 通过规定 Java 语言中基本数据类型的取值范围和行为&#xff0c;比如 int 长度为 4 字节&#xff0c;这是固定的。Class 文件&#xff1a; 所有 Java 文件要通过 javac 或者其他一些 java 编…

EasyExcel入门

目录 一、文章简介 二、概念 1.EasyExcel是什么&#xff1f; 2.EasyExcel 能用在哪里&#xff1f; 3.为什么要选用EasyExcel解析excel&#xff1f; 4.如何使用EasyExcel&#xff1f; 三、EasyExcel快速入门 1.环境搭建 2.简单写excel 代码示例 TestFileUtil Employe…

iPhone最全隐藏功能

让你的iphone没有白买&#xff01;一定要学会以下三十个iphone技巧&#xff1a; 一、正品苹果手机输入“苹果”会出现图标&#xff0c;山寨或其他机型只能打出红色的 二、长按图片中的人像不松&#xff0c;可以自动抠图。 三、Siri换男生&#xff0c;设置-Siri与搜索- Siri声音…

关于ollama+open webui无法局域网访问的解决办法

ollama api本地默认地址&#xff1a;http://127.0.0.1:11434 open webui的默认地址&#xff1a;http://127.0.0.1:3000 如果是本机访问&#xff0c;ollama默认允许本机跨域访问&#xff08;哈里是看ollama的日志都是OPTIONS请求&#xff0c;bing后发现的&#xff09;&#xf…

TensorFlow 可用的人脸识别的模型有哪些,各有什么优缺点

在使用TensorFlow进行人脸识别时,有多种可用的模型,每种模型在性能和应用场景方面各有不同。以下是一些常用的人脸识别模型及其优缺点: 1. FaceNet 优点: 高准确性:FaceNet通过计算脸部特征向量并进行向量比较,具有较高的识别准确性。通用性强:生成128维特征向量,可以…

Mysql:删除库下面所有表

Mysql删除库下面所有表 方法一 1、删除数据库&#xff1a; DROP DATABASE your_database_name;2、重新创建数据库&#xff1a; CREATE DATABASE your_database_name;方法二 1、生成删除表语句 SET FOREIGN_KEY_CHECKS 0;SELECT Concat(DROP TABLE IF EXISTS , table_nam…

Linux的NTP配置

一、监控时间&#xff1a; watch date 二、NTP配置 1、查看时间 ntpdate -q 192.168.192.3 ntpdate 192.168.192.3 2、配置时间服务器 vi /etc/ntp.conf server 192.168.192.3 iburst 3、设置时间不允许回调 vi /etc/sysconfig/ntpd OPTIONS"-u ntp:ntp -p /va…

什么时候使用auto

合理使用auto&#xff0c;可以让程序员从复杂的类型编码中解放出来&#xff0c;合理使用auto&#xff0c;可以让程序员从复杂的类型编码中解放出来。 那么什么时候使用auto呢&#xff1f; 1&#xff0e;当一眼就能看出声明变量的初始化类型的时候可以使用auto。 std::map<…

心灵调整:音乐之美

音乐每天都在不同的空间和复杂的形式影响着人们。从电梯音乐削减尴尬的沉默,到家庭交通堵塞。音乐增强了人们所爱的人与人之间的瞬间,并帮助他们度过艰难时期。音乐被用于世界各地几代人的各种形式的治疗。本文进一步阐述了它如何在几种类型的心理健康状况中得到应用。 什么是音…

【SOC 芯片设计 DFT 学习专栏 -- DFT DRC规则检查】

请阅读【嵌入式及芯片开发学必备专栏】 请阅读【芯片设计 DFT 学习系列 】 如有侵权&#xff0c;请联系删除 转自&#xff1a; 芯爵ChipLord 2024年07月10日 12:00 浙江 文章目录 概述DRC的概念Tessent DRC检查的概述时钟相关检查扫描相关检查BIST规则检查预DFT时钟规则检查 …