Linux 内存top命令详解

通过top命令可以监控当前机器的内存实时使用情况,该命令的参数解释如下:

第一行
15:30:14 —— 当前系统时间
up 1167 days, 5:02  —— 系统已经运行的时长,格式为时:分
1 users  ——当前有1个用户登录系统
load average: 0.00, 0.01, 0.05 ——系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值

 

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数,存在超多数睡眠的进程属于正常现象,有些任务执行完成后会主动挂起,让出CPU, 
         也会有些是人为暂停的进程
stopped 停止的进程数
zombie 僵尸进程数

Cpu(s):
us:进程在用户空间(user)消耗的CPU时间占比,不包含调整过优先级的进程.
   用户空间和内核空间:linux操作系统和驱动程序运行在内核空间.应用程序运行在用户空间.

sy:进程在内核空间(system)消耗的CPU时间占比

ni:调整过用户优先级的(niced)进程和CPU时间占比

id:空闲的(idle)CPU时间占比

wa:等待(wait) I/O完成的CPU时间占比.

hi:处理硬中断(hardware interrupt)的CPU时间占比

si:处理软中断(software interrupt)的CPU时间占比
    硬终断和软中断
        硬中断:由与系统相连的外设(如网卡,硬盘)自动产生,主要是用来通知操作系统系统外设状态的变 
               化.比如当网卡收到数据包的时候,就会发出一个中断.我们通常所说的中断指的是硬终断.
        软中断:为了满足实时需求,中断处理应该是越快越好.linux为了实现这个特点,当中断发生的时候, 
               硬终断处理那些短时间就可以完成的工作,而将那些处理时间比较长的工作,放到终断之后 
               来完成,也就是软终断来完成.

st:当linux系统是在虚拟机中运行时,等待CPU资源的时间(steal tine)占比.
第四行,第五行:物理内存和交换内存(Mem/Swap)
    物理内存和交换内存
    计算机有两种基本类型的内存:
        第一种:随机存取存储器(RAM),用于存储计算机使用的数据和程序.只有    
              程序和数据存储在RAM中,计算机才能使用它们.随机存储器是易失性存储器.也就是说.如果 
              计算关机了,存储在RAM中的数据就会丢失.硬盘用于长期存储数据和程序.CPU不能直接访问 
              硬盘上的程序和数据.它们必须首先复制到RAM中才能访问.

        第二种:交换空间.交换空间的主要功能是当全部的RAM被占用并且需要更多内存时,用磁盘空间代替 
               RAM内存.
        
        假设你有一个8GB RAM的计算机.如果你启动的程序没有填满RAM,一切都好,不需要交换.假设你处理 
        电子表格,当添加更多的行时,你的电子表格会增长,加上所有正在运行的程序,将会占用全部的RAM. 
        如果这时没有可用的交换空间,你将不得不停止处理你的电子表格,直到关闭一些其他程序来释放一 
        些RAM.内核使用一个内存管理程序来检测最近没有使用的内存块.内存管理程序将这些相对不经常 
        使用的内存块交换到硬盘上专门指定用于交换的特殊分区.这会释放RAM,为输入电子表格更多数据 
        腾出了空间.那些换出到磁盘的存储块被内核的内存管理代码跟踪,如果需要,可以被放回RAM.

linux中内存总量=RAM+交换内存,交换内存又成为虚拟内存.

total 内存总量

free 空闲内存量

used 使用的内存量

buff/cache 缓存

cache:是高速缓存,用于cpu和内存之间的缓冲.让内存跟上cpu的速度.将最近使用频次多的数据存到cache中,cpu处理一个数据时,先从cache中找,找不到再去内存找,并把这部分数据存到cache中.

buff:是I/O缓存.用于内存和磁盘之间的缓冲.把分散的写操作集中进行.
======================================================================
buffer和cache的详解:

=====================================================================

进程信息区统计信息区域的下方显示了各个进程的详细信息。各列的含义如下:
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
命令使用
top使用格式

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

参数说明
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名

其他实用命令
下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。
Ctrl+L 擦除并且重写屏幕。
h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 退出程序。
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S 切换到累计模式。
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F 从当前显示中添加或者删除项目。
o或者O 改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t 切换显示进程和CPU状态信息。
c 切换显示命令名称和完整命令行。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

附常用操作:

top //每隔5秒显式所有进程的资源占用情况
top -d 2 //每隔2秒显式所有进程的资源占用情况
top -c //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

参考链接:linux top 命令各参数详解 - 简书[linux]解读top命令_top 命令看到很多sleeping-CSDN博客

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

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

相关文章

微信小程序swiper 视频中间大,两边小,轮播滑到中间视频自动播放组件教程

静态效果&#xff1a; 进入下面小程序可以体验效果&#xff0c;点击底部 看剧 栏目 一、创建小程序组件 二、代码 1、WXML <view class"swiper-wrapper" style"background-image:url(/asset/image/hot-banner.jpg);background-size: 100% 100%;">…

JS逆向---RSA登录模拟实例()

文章目录 前言一. 实战分析 前言 该文章是结合前一篇&#xff0c;测试例子是匀加速商城&#xff0c;登录状态下对其密码加密的逆向&#xff0c;比较简单容易上手&#xff0c;作为练习项目 声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不…

C++Qt——信号与槽

Qt信号与槽——建立信号与槽 平常我们所见到的界面&#xff0c;鼠标点击一下指定的按钮&#xff0c;就会产生一定的效果。C Qt框架中的信号与槽机制是Qt进行对象间通信的一种方法&#xff0c;非常核心且有别于传统的回调函数或者消息传递机制。通过信号与槽&#xff0c;Qt能够…

迈向AI时代:掌握Python编程与ChatGPT的强强联手

文章目录 一、ChatGPT与Python编程的结合二、利用ChatGPT学习Python编程的优势三、如何使用ChatGPT学习Python编程四、学习技巧与建议《码上行动&#xff1a;用ChatGPT学会Python编程》特色内容简介作者简介目录获取方式 随着人工智能技术的飞速发展&#xff0c;编程已经成为了…

MySQL学习记录——십일 索引

文章目录 1、了解索引2、聚簇、非聚簇索引3、操作1、主键索引2、唯一键索引3、普通索引4、注意事项 4、全文索引 1、了解索引 MySQL服务器是在内存中的&#xff0c;所有数据库的CURD操作都是在内存中进行&#xff0c;索引也是如此。索引是用来提高性能的&#xff0c;它通过组织…

[ai笔记10] 关于sora火爆的反思

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第10篇分享&#xff01; 最近sora还持续在技术圈、博客、抖音发酵&#xff0c;许多人都在纷纷发表对它的看法&#xff0c;这是一个既让人惊喜也感到焦虑的事件。openai从2023年开始&#xff0c;每隔几个…

【软考问题】-- 14 - 知识精讲 - 项目配置与变更管理

一、基本问题 问题1&#xff1a;什么是配置项&#xff1f; 定义&#xff1a;为配置管理设计的硬件、 软件或二者的集合&#xff0c; 在配置管理过程中作为一个单个实体来对待。分类&#xff1a;软件、硬件和各种文档。问题2&#xff1a;配置库分为哪三类&#xff1f; &#xff…

如何用 Moodle 和 ONLYOFFICE 创建在线学习平台

在教学过程中使用现代在线学习软件&#xff0c;已不再是什么稀奇事。在世界各地&#xff0c;越来越多的教师和学生都在使用现代技术&#xff0c;应用新的学习场景&#xff0c;包括学生在传统课堂之外更积极的参与、更密切的互动。 Moodle 支持各类学校和大学充分利用在线教育过…

单片机和RTOS

一.单片机和RTOS区别 单片机是一种集成了处理器、内存、输入输出接口和外围设备控制器等功能的微型计算机系统。它通常用于控制简单的嵌入式系统&#xff0c;如家电、汽车电子、工业控制等。单片机具有低功耗、低成本和高可靠性等特点。 而RTOS&#xff08;Real-Time Operati…

每日一题(珠玑妙算,两数之和)

面试题 16.15. 珠玑妙算 - 力扣&#xff08;LeetCode&#xff09; int* masterMind(char* solution, char* guess, int* returnSize) //定义一个函数masterMind&#xff0c;它接受三个参数&#xff1a;solution&#xff08;正确答案&#xff09;&#xff0c;guess&#xff08;玩…

2024年及以后在您的项目中使用的最佳CSS框架

在过去几年中&#xff0c;CSS已经取得了长足的进步。在过去&#xff0c;您可能会使用CSS来创建依赖于HTML表格和CSS浮动作为其布局系统的简单外观的Web应用程序。而现在&#xff0c;您可以设计复杂的交互式用户界面&#xff0c;具有优雅的设计。 尽管CSS变得越来越先进&#x…

前端(二十七)——封装指南:Axios接口、常用功能、Vue和React中的封装技术

&#x1f60a;博主&#xff1a;小猫娃来啦 &#x1f60a;文章核心&#xff1a;前端封装指南&#xff1a;Axios接口、常用功能、Vue和React中的封装技术 本文目录 小引前端封装以真实项目举个例子 Axios接口封装常用功能封装封装 Vue中的封装技术React中的封装技术Vue和React封装…

Java+Vue+MySQL,国产动漫网站全栈升级

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

IDEA报错:无法自动装配。找不到 ... 类型的 Bean。

今天怎么遇见这么多问题。 注&#xff1a;似乎只有在老版本的IDEA中这个报错是红线&#xff0c;新版的IDEA就不是红线了&#xff08;21.2.2是红的&#xff09; 虽然会报错无法自动装配&#xff0c;但启动后仍能正常执行 不嫌麻烦的解决做法&#xff1a;Autowired的参数reques…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(一)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型&#xff0c;由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”&#xff08;そら sora&#xff09;&#xff0c;即天空之意&#xff0c;以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

Android开发的调试利器-BlueStacks

工欲善其事&#xff0c;必先利其器&#xff0c;作为Android开发的模拟器选择&#xff0c;还是费了好一阵工夫。开始采用Android Studio自带的模拟器&#xff0c;因为发现其支持的类型极其丰富&#xff0c;于是总想将其折腾好&#xff0c;但结果是浪费了很多时间&#xff0c;仍然…

Stable Diffusion ComfyUI安装详细教程

上一篇文章介绍了sd-webui的安装教程&#xff0c;但学习一下ComfyUI这种节点流程式的对理解AI绘画有较大帮助&#xff0c;而且后期排查错误会更加方便&#xff0c;熟练后用这种方式做AI绘画可玩性会更多。 文章目录 一、安装包说明二、安装文件介绍三、安装步骤四、汉化五、云主…

【Java】小白必须要懂的关于反射的极简基础知识

目录 反射概念 JVM基础 Class对象之源&#xff1a;类的加载过程 反射获取Class对象的三种方法 Class对象的三种常用方法 三种常用方法对应的后续调用 用反射来实现命令执行 反射概念 反射&#xff08;Reflection&#xff09;是指在程序运行时可以检查、获取和修改类的…

如何快速部署幻兽帕鲁私人服务器:适合零基础小白的指南

看了许多关于如何部署服务器的&#xff0c;大部分都是要买阿里云或者腾讯云的服务器并且至少四核以上才能保证流畅运行。 但是对于想搭建私服但又没有技术的小白&#xff0c;确实是有点难度了。购买云服务器后还要配置服务器&#xff0c;配置OpenVPN、PalServer&#xff0c;doc…

纯净住宅代理有何优势?为什么要用它?

随着互联网的快速发展&#xff0c;代理服务器已经成为许多在线活动的关键组成部分&#xff0c;从数据挖掘到网络安全。然而&#xff0c;随着技术的不断发展&#xff0c;住宅IP代理正崭露头角&#xff0c;因其在保障隐私、提升性能和应对封锁方面的卓越优势而备受瞩目。本文将深…