Linux Top命令详解

文章目录

  • 第一行:系统相关
    • top - 09:17:06:
    • up 100 days, 23:52:
    • 1 user:
    • load average: 4.19, 3.92, 3.87:
    • 负载平均值解释
  • 第二行:进程相关
    • Tasks: 118 total:
    • 1 running:
    • 117 sleeping:
    • 0 stopped:
    • 0 zombie:
    • 进程状态解释
  • 第三行:CPU相关
  • 第四行:内存相关
    • KiB Mem
    • 2046504 total
    • 71832 free
    • 1738416 used
    • 236256 buff/cache
  • 第五行:SWAP交换分区信息
    • KiB Swap
    • 4194296 total
    • 1225736 free
    • 2968560 used
    • 145032 avail Mem
  • 进程的状态监控
  • 其它:Linux查看物理CPU个数、核数;逻辑CPU个数
  • 1 查看物理CPU个数
  • 2 查看每个物理CPU的核心数
  • 3 查看逻辑CPU的个数
  • 4 查看CPU型号
  • 4 查看内存信息

在linux中执行top命令,会出现以下结果:

top - 09:17:06 up 100 days, 23:52,  1 user,  load average: 4.19, 3.92, 3.87
Tasks: 118 total,   1 running, 117 sleeping,   0 stopped,   0 zombie
%Cpu(s): 66.7 us, 12.1 sy,  0.0 ni, 15.2 id,  3.0 wa,  0.0 hi,  3.0 si,  0.0 st
KiB Mem :  2046504 total,    71832 free,  1738416 used,   236256 buff/cache
KiB Swap:  4194296 total,  1225736 free,  2968560 used.   145032 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
14518 root      20   0   32100   9768    936 S  75.0  0.5  45146:00 tmux
31132 user-es   20   0 2997316 303160   2280 S  62.5 14.8  40716:04 java
22719 root      20   0  757596   9992   2536 S  12.5  0.5 739:11.09 barad_agent
15842 root      20   0 3265188 366808   3920 S   6.2 17.9 287:06.20 java
    1 root      20   0   43736   3364   2072 S   0.0  0.2  11:01.81 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:02.16 kthreadd
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H
    6 root      20   0       0      0      0 S   0.0  0.0  19:46.38 ksoftirqd/0
    7 root      rt   0       0      0      0 S   0.0  0.0   6:52.95 migration/0
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
    9 root      20   0       0      0      0 S   0.0  0.0 246:09.99 rcu_sched
   10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain
   11 root      rt   0       0      0      0 S   0.0  0.0   0:32.43 watchdog/0
   12 root      rt   0       0      0      0 S   0.0  0.0   0:29.58 watchdog/1
   13 root      rt   0       0      0      0 S   0.0  0.0   6:48.22 migration/1

第一行:系统相关

top - 09:17:06 up 100 days, 23:52,  1 user,  load average: 4.19, 3.92, 3.87

top - 09:17:06:

top 表示运行的是 top 命令。
09:17:06 是当前的系统时间。

up 100 days, 23:52:

up 100 days, 23:52 表示系统已经连续运行了 100 天 23 小时 52 分钟(即系统没有重启过的时间)。

1 user:

1 user 表示当前有 1 个用户登录到系统。

load average: 4.19, 3.92, 3.87:

load average 后面的三个数字表示系统的平均负载,分别是最近 1 分钟、5 分钟和 15 分钟的负载平均值。
负载平均值是一个反映系统活动程度的指标,它表示在给定时间段内运行队列中的进程数量。这些值通常用于评估系统性能和检测是否存在性能瓶颈。
4.19:最近 1 分钟的平均负载。
3.92:最近 5 分钟的平均负载。
3.87:最近 15 分钟的平均负载。

负载平均值解释

负载平均值表示系统运行队列中的任务数,通常与 CPU 核心数对比来评估系统负载情况:

如果负载平均值低于 CPU 核心数,系统负载较轻,性能良好。
如果负载平均值接近或超过 CPU 核心数,系统负载较重,可能存在性能瓶颈。
例如,如果系统有 4 个 CPU 核心:

load average: 4.19, 3.92, 3.87 表示最近一段时间内系统负载较高,接近或超过了 4 个核心的处理能力,可能需要关注系统性能或优化任务调度。

第二行:进程相关

Tasks: 118 total,   1 running, 117 sleeping,   0 stopped,   0 zombie

Tasks: 118 total:

系统当前总共有 118 个任务(进程)。

1 running:

其中有 1 个任务正在运行。

117 sleeping:

117 个任务处于睡眠状态(等待资源或时间片)。

0 stopped:

0 个任务被停止(暂停执行)。

0 zombie:

0 个任务处于僵尸状态(已经终止但尚未被父进程收集)。

进程状态解释

running(运行):

当前正在使用 CPU 执行的任务。

sleeping(睡眠):

任务处于等待状态,通常是等待 I/O 操作完成或等待某个资源。
睡眠状态分为两种:
可中断睡眠(Interruptible Sleep):任务可以被信号唤醒。
不可中断睡眠(Uninterruptible Sleep):任务不会响应信号,通常是等待硬件操作完成。
stopped(停止):

任务被暂停执行,通常是由于收到 SIGSTOP 信号,可以通过 SIGCONT 信号恢复执行。

zombie(僵尸):

任务已经终止,但其退出状态尚未被父进程读取,因此仍然占据进程表的一个条目。

第三行:CPU相关

%Cpu(s): 66.7 us, 12.1 sy,  0.0 ni, 15.2 id,  3.0 wa,  0.0 hi,  3.0 si,  0.0 
  • us (user):用户空间的 CPU 使用百分比。
  • sy (system):内核空间的 CPU 使用百分比。
  • ni (nice):带有调整优先级的用户进程的 CPU 使用百分比。
  • id (idle):空闲 CPU 时间的百分比。
  • wa (iowait):等待 I/O 操作完成的 CPU 时间百分比。
  • hi (hardware interrupt):硬件中断处理的 CPU 时间百分比。
  • si (software interrupt):软件中断处理的 CPU 时间百分比。
  • st (steal time):虚拟机运行其他 hypervisor 上客户机的时间百分比。

第四行:内存相关

KiB Mem :  2046504 total,    71832 free,  1738416 used,   236256 buff/cache

KiB Mem

这是指内存的总量,使用的单位是KiB(Kibibytes),其中1 KiB = 1024 Bytes。

2046504 total

系统的总内存量为2046504 KiB,约为2 GB。

71832 free

当前系统中空闲的内存量为71832 KiB,大约为70 MB。这部分内存是还没有被使用的,可供新的应用程序或现有程序扩展使用。

1738416 used

已经被使用的内存量为1738416 KiB,约为1.7 GB。这包括所有当前运行的程序和进程所占用的内存。

236256 buff/cache

被用作缓冲和缓存的内存量为236256 KiB,约为230 MB。操作系统会使用这部分内存来存储临时数据,以加快文件访问速度和响应速度。

第五行:SWAP交换分区信息

KiB Swap:  4194296 total,  1225736 free,  2968560 used.   145032 avail Mem

KiB Swap

表示系统配置的交换空间总量,使用的单位同样是KiB(Kibibytes)。交换空间是硬盘上的一个特定区域,当物理内存不足时,系统会使用它作为虚拟内存。

4194296 total

交换空间的总量为4194296 KiB,约为4 GB。这个大小表明系统管理员可能预见到需要处理较多或较大的应用程序,因此配置了相对较大的交换空间。

1225736 free

当前未使用的交换空间为1225736 KiB,约为1.2 GB。这表示尽管部分交换空间已经在使用中,但还有相当一部分是空闲的。

2968560 used

已经使用的交换空间为2968560 KiB,约为3 GB。这个数字较高,表明物理内存的需求超过了实际可用的物理内存,系统不得不依赖交换空间来满足内存需求,这通常会影响系统性能,因为交换空间的读写速度远不及物理内存。

145032 avail Mem

可用内存为145032 KiB,约为142 MB。这是系统当前可以立即使用的内存量,考虑到物理内存和缓冲/缓存的使用情况,这个数字相当低,可能导致系统在处理某些内存密集型操作时表现不佳。

进程的状态监控

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

这段输出显示的是 top 命令中进程信息的列标题,每个字段具体含义如下:

  1. PID:Process ID(进程标识符)。这是系统分配给每个进程的唯一数字标识。通过PID,你可以特定地操作或监控该进程。

  2. USER:运行该进程的用户名称。这显示了哪个用户启动了该进程,有助于了解系统资源的使用情况和权限管理。

  3. PR:Priority(优先级)。这代表了进程的调度优先级。数值越小,优先级越高。

  4. NI:Nice value。这是一个从-20到19的值,用于调整进程的优先级。负值表示高优先级,正值表示低优先级。

  5. VIRT:Virtual Memory(虚拟内存使用量)。表示该进程总共使用的虚拟内存量,包括所有代码、数据和共享库加上交换空间的使用量。

  6. RES:Resident Size(常驻内存大小)。这是该进程当前占用的物理内存的大小,不包括交换出去的内存部分。

  7. SHR:Shared Memory(共享内存)。表示该进程与其他进程共享的内存量。

  8. S:Process Status(进程状态)。常见的状态有:

    • R (running): 正在运行或在运行队列中等待。
    • S (sleeping): 处于睡眠状态,等待某个事件或定时器。
    • D (disk sleep): 不可中断的睡眠状态,通常是在等待IO操作。
    • Z (zombie): 已完成执行但尚未由其父进程清理的“僵尸”状态。
    • T (stopped): 被任务控制或因调试而停止的进程。
  9. %CPU:CPU使用率。显示该进程占用的CPU时间百分比。

  10. %MEM:内存使用率。显示该进程使用的物理内存与总物理内存的百分比。

  11. TIME+:该进程自启动以来占用的总CPU时间,通常以分钟:秒的形式表示。

  12. COMMAND:启动该进程的命令名称或命令行。

这些字段提供了关于系统上每个进程的详细信息,有助于系统管理员监控和优化系统性能。

其它:Linux查看物理CPU个数、核数;逻辑CPU个数

1 查看物理CPU个数

cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

这段命令是用于在Linux系统中查询CPU的物理数量。每一部分都有其特定功能,组合在一起形成一个有用的工具链。下面是命令的详细解释和逻辑:

  1. cat /proc/cpuinfo:这个命令用于显示 /proc/cpuinfo 文件的内容。这个文件包含了当前系统中CPU的详细信息,如型号、核心数、速度等。/proc 是一个虚拟文件系统,提供了内核及进程的运行时系统信息。

  2. grep "physical id"grep 命令用于搜索文本,并输出包含指定模式的行。这里,它被用来从 /proc/cpuinfo 的输出中查找所有包含 “physical id” 的行。每个CPU物理核心在系统中都有一个唯一的 “physical id”,如果CPU支持超线程(Hyper-Threading),则具有相同“physical id”的逻辑处理器比实际物理核心更多。

  3. sort:这个命令将从 grep 命令接收的文本行进行排序。由于可能存在多个逻辑处理器共享相同的物理ID,所以这一步确保所有相同的物理ID都排在一起,方便下一步的去重操作。

  4. uniquniq 命令用来过滤掉排序后重复的行,因此它只保留唯一的行。这样,每个唯一的 “physical id” 只会被计算一次。

  5. wc -l:最后,这个命令计算行数。wc 是 “word count”的缩写,而 -l 参数告诉它只计算行数。这个数字表示系统中物理CPU的数量。

总的来说,这条命令链通过列出所有独特的CPU物理ID来计算物理CPU的数量,是一种检测服务器或工作站处理能力的快速方法。如果是多核心或者多CPU的系统,这个命令可以帮助理解系统的硬件组成。

2 查看每个物理CPU的核心数

cat /proc/cpuinfo | grep "cpu cores" | uniq

命令与前面差不多,这里就不过多解释。

3 查看逻辑CPU的个数

cat /proc/cpuinfo | grep "processor" | wc -l

4 查看CPU型号

cat /proc/cpuinfo | grep "name"| cut -f2 -d: | uniq -c

这条命令用于查询Linux系统中CPU的型号名称,并计算每种型号的数量。让我们逐步解析这个命令的每个部分:

  1. cat /proc/cpuinfo:这个命令输出 /proc/cpuinfo 文件的内容,该文件包含了关于系统CPU的详细信息。如前所述,/proc 是一个虚拟文件系统,提供关于系统运行状态的信息。

  2. grep "name":使用 grep 命令从 /proc/cpuinfo 的输出中筛选出包含 “name” 的行。这些行包含了CPU的型号名称,通常标记为 model name

  3. cut -f2 -d:cut 命令用于分割字符串。这里,-f2 指定选择分割后的第二字段,-d: 则设置分隔符为冒号 :。这意味着,从 grep 输出的每一行中,我们只获取冒号后面的部分,也就是CPU型号名称。

  4. uniq -cuniq 命令用来过滤相邻重复行,并通过 -c 选项来计算每种行出现的次数。在这里,它统计每种CPU型号名称出现的次数。由于 uniq 只能过滤排序后的相邻重复行,但在这种情况下由于输出本来就是重复的型号名称,所以直接应用 uniq -c 依然有效。

综合来看,这条命令链的作用是列出系统中各种CPU型号的名称,并统计每种型号出现的次数,从而提供关于系统中具体使用了哪些CPU及其数量的快速概览。如果系统包含多个相同型号的CPU(例如在多核或多CPU配置中),这个命令可以清晰地显示每个型号的计数,帮助理解系统的具体硬件配置。

4 查看内存信息

cat /proc/meminfo 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大模型微调】一文掌握7种大模型微调的方法

本篇文章深入分析了大型模型微调的基本理念和多样化技术,细致介绍了LoRA、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景,使得读者可以依据特定的应用要求和计算资源限…

Jquery+Servlet+JDBC实现登录注册功能

前端部分 HTMLCSS部分 引入JQuery包和JQuery.cookie包,前者封装了DOM操作的一些方法,后者封装了对cookie的操作 我们使用cookie主要是为了做登录后页面的跳转时,能存下来这个用户是谁,这样后面可以对单一用户进行操作&#xff…

使用API有效率地管理Dynadot域名,默认将域名隐形转发至其他界面

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

webpack优化构建速度示例-resolve.extensions:

当项目不仅仅包含.js或.json文件,还包含其他类型文件(如.ts、.vue、.css)作为模块时,配置resolve.extensions可以不必要的文件搜索提高性能。 src/index.ts import { someFuction } from ./modulesomeFuction()src/module.tsimport {otherSomeFuction} f…

三分钟快速上手SpringSecurity框架

导入依赖框架 web 框架(spring-boot-starter-web) <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> springSecurity 框架(spring-boot-starter-security) <de…

【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置

本节博客主要是通过“在排序数组中查找元素的第一个和最后一个位置”总结关于二分算法的左右界代码模板&#xff0c;有需要借鉴即可。 目录 1.题目2.二分边界算法2.1查找区间左端点2.1.1循环条件2.1.2求中点的操作2.1.3总结 2.2查找区间右端点2.1.1循环条件2.1.2求中点的操作2.…

vue框架学习--表单校验

在使用 Element UI&#xff08;一个常见的 Vue UI 组件库&#xff09;&#xff0c;要给 添加表单验证&#xff0c;Element UI 的表单验证通常通过 Form 和 FormItem 组件以及它们的 rules 属性来实现。下面是一个例子&#xff0c;展示如何给联系人字段添加表单验证&#xff1a;…

网页打开:为什么国内用新标签页,国外用当前页?

想写这个话题很久了&#xff0c;因为用百度和Google搜索时&#xff0c;打开搜索结果链接时的交互差异&#xff0c;几乎每天都要提醍我一下。 网页打开——这个交互&#xff0c;在设计里&#xff0c;算是极微小&#xff0c;但影响极广泛的操作设计。甚至&#xff0c;因此形成了…

使用Python处理Excel数据:去除列中的双引号

目录 引言 技术背景 步骤概述 代码示例 案例分析 扩展内容 1. 处理多个列中的双引号 2. 处理大型Excel文件 3. 自定义函数处理数据 4. 错误处理和日志记录 结论 引言 在当今信息爆炸的时代&#xff0c;数据已经成为了各个行业最宝贵的资源之一。而Excel&#xff0c…

转载 | 大佬3万字深度分析:2024全球游戏业正在遭遇什么困境?

2022年&#xff0c;游戏业当时的裁员人数达到了破纪录的8500人&#xff0c;2023年这个数字几乎增长了20%&#xff0c;然后在2024开年的两个月&#xff0c;就已经有7800人丢掉了工作。伴随着这些裁员的&#xff0c;是大量表现不及预期的或者完全失败的游戏&#xff0c;还有更多处…

人工智能(一)架构

一、引言 人工智能这个词不是很新鲜&#xff0c;早就有开始研究的&#xff0c;各种推荐系统、智能客服都是有一定的智能服务的&#xff0c;但是一直都没有体现出多高的智能性&#xff0c;很多时候更像是‘人工智障’。 但是自从chatGpt3被大范围的营销和使用之后&#xff0c;人…

Hbuild-X运行ios基座app

一、说明 ios真机第一次运行的时候需要下载插件&#xff0c;这个都是自动监测&#xff0c;自动下载的&#xff0c;不用多说。ios真机运行是需要签名的&#xff0c;不然就会报以下错误。如何制作免费的签名证书呢&#xff0c;需要借助爱思助手来完成。 二、安装爱思助手 &…

吴恩达机器学习笔记:第 10 周-17大规模机器学习(Large Scale Machine Learning)17.3-17.4

目录 第 10 周 17、 大规模机器学习(Large Scale Machine Learning)17.3 小批量梯度下降17.4 随机梯度下降收敛 第 10 周 17、 大规模机器学习(Large Scale Machine Learning) 17.3 小批量梯度下降 小批量梯度下降算法是介于批量梯度下降算法和随机梯度下降算法之间的算法&am…

一行代码实现vip标志的显示

需求说明 在项目中&#xff0c;后期添加了一种用户类型。需要再用户头像右下角显示一个vip的标志。问题是只要有头像的地方都要显示。而有头像的地方很多&#xff0c;设置到的接口也很多。后面考虑通过一个工具类&#xff0c;将这个功能外挂到原来的业务需要的地方。 实现效果…

Java—如何判断两个浮点数相等

结论 一旦有浮点型数据参与运算的结果&#xff0c;一定不要使用 “ ” 与其比较。 提出问题 我们知道在Java中浮点数float 和 double 的值不能很精准的表示一个小数&#xff0c;因为会有精度损失。 下面来看一个例子&#xff1a; public class FloatTest {public static …

教程:在 Apifox 中将消息通知集成到钉钉、飞书等应用

Apifox 支持将「消息通知」集成到第三方应用平台&#xff0c;包括企业微信、钉钉、飞书、Webhook 和 Jenkins。具体可在项目的【项目设置 -> 通知设置 -> 外部通知】里新建一个通知事件&#xff0c;然后在弹出的界面中配置即可。 在配置界面可以选择需要的触发事件&#…

如何在WordPress中启用两因素身份验证?

在WordPress中启用两因素身份验证方法&#xff1a;安装和激活WordFence安全性、启用两因素验证。 使用您可以从任何位置登录的任何门户&#xff0c;建议启用两个因素身份验证以增加帐户的安全性。 这样&#xff0c;即使有人可以正确猜测你的密码&#xff0c;它们仍然需要获得2…

诸葛智能携手五大银行,以数据驱动的营销中台带来可预见增长

对于银行来说&#xff0c;客户是赖以生存的基础&#xff0c;也是保持活力的关键。尤其是大数据、人工智能等新兴技术的推动下&#xff0c;通过数据赋能产品升级和服务创新&#xff0c;深挖客户潜能&#xff0c;更是助推银行快步迈入高质量发展的新阶段。 在银行加速拥抱新质生…

32位处理的寻址方式

32位处理器兼容16位处理器的寻址方式&#xff0c;可以运行传统的16位代码。但是由于32位的处理器都拥有32位的寄存器和算数逻辑部件&#xff0c;而且同内存芯片之间的数据通路至少是32位的&#xff0c;因此&#xff0c;所有需要从寄存器或者内存地址处取得操作数的指令都被扩充…

Python专题:八、为整数增加小数点

1、题目 虽说很多人讨厌小数点&#xff0c;但是有时候小数点是必不可少的一项&#xff0c;请你使用强制类型转换为输入的整数增加小数点&#xff0c;并输出改变类型后的变量类型。 2、代码 import sysa float(int(input())) print(f"(a:.lf)",type(a),sep"\…