linux查看内存占用情况(top、free、ps)

2023-11-08

top命令

  top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。

  

内容解释:

第一行(top):

  15:24:36 系统当前时刻

  14 days 系统启动后到现在的运作时间

  3 users 当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目

  load average 当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程

第二行(Tasks):

  288 total 当前系统进程总数

  1 running 当前运行中的进程数

  287 sleeping 当前处于等待状态中的进程数

  0 stoped 被停止的系统进程数

  0 zombie 僵尸进程数

第三行(Cpus):

  7.3% us 用户空间占用CPU百分比
  2.0% sy 内核空间占用CPU百分比
  0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
  90.4% id 空闲CPU百分比
  0.3% wa 等待输入输出的CPU时间百分比
  0.0% hi
  0.0% si

  0.0% st

第四行(Mem):

  2042616 total 物理内存总量
  1770116 used 使用的物理内存总量
  272500 free 空闲内存总量
  163912 buffers 用作内核缓存的内存量

第五行(Swap):

表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

  2094076 total 交换区总量
  45052 used 使用的交换区总量
  2049024 free 空闲交换区总量
  346624 cached 缓冲的交换区总量

最下部分的进程列表栏:

以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式:

  PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:

  s- 改变画面更新频率

  l - 关闭或开启第一部分第一行 top 信息的表示

  t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示

  m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示

  N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)

  P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)

  M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)

  h - 显示帮助

  n - 设置在进程列表所显示进程的数量

  q - 退出 top

  s -改变画面更新周期

 

ps命令

  ps命令用于报告当前系统的进程状态。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

F 代表这个程序的旗标 (flag), 4 代表使用者为 super user;

  S 代表这个程序的状态 (STAT);

  PID 程序的 ID ;

  C CPU 使用的资源百分比

  PRI 这个是 Priority (优先执行序) 的缩写;

  NI 这个是 Nice 值。

  ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running # 的程序,一般就是『 - 』

  SZ 使用掉的内存大小;

  WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作;

  TTY 登入者的终端机位置;

  TIME 使用掉的 CPU 时间。

  CMD 所下达的指令

 

pmap命令

  pmap命令用于报告进程的内存映射关系

  $ pmap -d 16613

 

free命令

  free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解释了。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是434884KB,已用内存是3489800KB,
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

 如上例:
893176=434884+36436+421856

 

~ # cat /proc/meminfo 
MemTotal:         155616 kB
MemFree:            5112 kB
MemAvailable:      71920 kB
Buffers:             184 kB
Cached:            66956 kB
SwapCached:            0 kB
Active:            92816 kB
Inactive:          15100 kB
Active(anon):      41992 kB
Inactive(anon):      128 kB
Active(file):      50824 kB
Inactive(file):    14972 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         40804 kB
Mapped:            10888 kB
Shmem:              1352 kB
Slab:              20964 kB
SReclaimable:       6904 kB
SUnreclaim:        14060 kB
KernelStack:        2840 kB
PageTables:         1804 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       77808 kB
Committed_AS:    1632944 kB
VmallocTotal:     761856 kB
VmallocUsed:       32136 kB
VmallocChunk:     722940 kB
~ # 
~ # free
                      total         used         free       shared      buffers
Mem:        155616       150448      5168         1344          184
-/+ buffers: 150264      5352
Swap:            0              0                  0
~ # 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux查看内存占用情况(top、free、ps) 的相关文章

  • Java同步方法及代码块

    同步方法及代码块 synchronized 同步方法 由于我们可以通过private关键字来保证数据对象只能被方法访问 所以我们只需要针对方法提出一套机制 这套机制就是synchronized关键字 它包括两种用法 synchronized
  • yolov5目标检测算法解析:基础网络模块

    Yolov5的模型定义分两个阶段 分别是基础模块设计阶段和完整模型搭建阶段 基础模块设计阶段 是基于pytorch架构的基本神经网络算子 进一步构造成具有特定功能和含义的自定义神经网络模块 完整模型搭建阶段 是通过结构化文件 利用基础模块
  • 初学者学习 JavaScript – JS 基础知识手册2023新版

    本手册的目的是迅速向你介绍JavaScript的基础知识 以便你可以开始编写应用程序 它并不包括JavaScript的所有理论和概念 而是只教授语言中最重要的构件 它包括变量 数据类型 函数 对象 数组和类 你还将学习如何结合它们来构建小型
  • ipad上有没有html编辑器,推荐:iPad上6款非常值得一试的工作软件

    得益于苹果出色的工业设计和优秀的用户体验 iPad已经成为了用户数量最多 最受欢迎的平板电脑 同时苹果App Store创造的一个良好的生态环境 也不断吸引越来越多的应用开发者为用户提供更多的优秀应用 下面为iPad用户介绍的 六款软件 都
  • 如何寻找二叉树任意处p、q的公共祖先

    算法思想 使用非递归的后序遍历 假设p在q的左边用栈保存二叉树的指针 栈 S 中全部元素都是当前指针 p 的祖先们 判断方法 先将栈复制到一个辅助栈 tempS 中 继续遍历到结点 q 的时候 将栈中元素从栈顶开始逐个和辅助栈 tempS
  • 力扣博文链接

    目录 树 堆 模拟 枚举 组合 链表 递归 宽搜 指针 进制 图论 分析 贪心 数学 构造 概率 排序 日期 KMP RMQ Trie树 对顶堆 扫描线 自动机 格雷码 字符串 思维题 逆序对 回文串 全排列 离散化 线段树 平衡树 单调栈
  • windows里的vscode 通过ssh远程到Linux服务器,显示matplotlib图形

    本地vscode安装插件 PYQT Integration 右键 py 选择 Run Current File in interactive Window 一些使用PyQt的步骤 conda activate py38 在自己的conda环
  • 用虚拟机安装linux程序

    其实这是一个很简单的工作 大牛不要嘲笑 这里只是写一个简单的流程 首先 是使用的软件 虚拟机程序Oracle VM VirtualBox http www oracle com technetwork server storage virt
  • IP地址的分类及子网掩码的计算

    目录 一 什么是IP地址 IP地址的作用及其种类 二 分类的IP地址 三 无分类编址 四 网络号 主机号和子网掩码的计算 一 1 IP地址 整个互联网中 分配给每一个主机在全世界范围内唯一的32位二进制码 2 IP地址的表示方法 为了可读性
  • Mybatis-Plus的详细使用

    一 MyBatisPlus概述 需要的基础 MyBatis Spring SpringMVC学完 为什么要学习呢 它可以节省我们大量的工作时间 所有的JDBC都可以自动化完成 JPA tk mapper MyBatisPlus 简介 是什么
  • 线上流量特训营:暴力引流10W+中小卖家流量破局技巧等

    新标题 突破流量瓶颈 线上流量特训营助力中小卖家引爆10W 流量的破局技巧 文章 引言 100字 线上流量特训营是一项旨在帮助中小卖家突破流量瓶颈的破局技巧 通过学习特训营提供的精选流量引爆策略 中小卖家可以迅速吸引超过10W的流量 实现业
  • L1-5 试试手气 (15 分)

    我们知道一个骰子有 6 个面 分别刻了 1 到 6 个点 下面给你 6 个骰子的初始状态 即它们朝上一面的点数 让你一把抓起摇出另一套结果 假设你摇骰子的手段特别精妙 每次摇出的结果都满足以下两个条件 1 每个骰子摇出的点数都跟它之前任何一
  • FWT 详解 知识点

    前言 扯淡 可以跳过 其实去年清华集训之后就想写这篇文章了 但是写了一会发现有点说不明白话 于是受限于语文水平一直没有写 前几天给人当面讲了一遍 感觉大概可以BB明白些了 picks的博客里就写着fwt怎么做 然而他并没有写为什么这样是对的
  • 【微服务架构】面向故障设计微服务架构

    微服务架构可以通过定义明确的服务边界隔离故障 但就像在每个分布式系统中一样 网络 硬件或应用程序级别问题的可能性更高 由于服务依赖关系 任何组件都可能对其消费者暂时不可用 为了最大限度地减少部分中断的影响 我们需要构建可以优雅地响应某些类型
  • 爬取上交所和深交所的年报问询函到Excel

    注意事项 需要安装一些包 如pdfminer pdfminer3k pdfplumber等 pdfminer不能解析上交所问询函 使用解析功能更为强大的pdfplumber可以解析 但是内容上可能会出现个别字重复的现象 pdfminer3k
  • 区间预测

    区间预测 MATLAB实现基于QRCNN BiGRU Multihead Attention多头注意力卷积双向门控循环单元多变量时间序列区间预测 目录 区间预测 MATLAB实现基于QRCNN BiGRU Multihead Attenti
  • Spring Boot 学习笔记整理

    spring boot 笔记 1 配置文件 1 application properties 2 application yml 作用 修改spring boot的默认设置 YAML 比XML和JSON更适合做配置文件 以数据为中心 2 Y
  • 解决鼠标右键没有文本

    解决鼠标右键没有文本文档 打开注册表 win r 输入 regedit 2 找到 txt 将默认值改为 txtfile 查看shellNew项是否存在 不存在新建 存在则改变 这个字符串值为空 F5刷新一下 或者
  • OLE接口详解

    所有 OLE Api 和接口的目的 本页 摘要 详细信息 常规 初始化和内存管理 远程处理 自定义服务 服务注册 DLL 服务器管理 杂项 COM 函数 命名 名字对象 结构化的存储 永久对象 每个事件的通知 统一数据传输 可查看对象 标准
  • HarmonyOS 自定义页面请求与前端页面调试

    一 自定义页面请求响应 Web 组件支持在应用拦截到页面请求后自定义响应请求能力 开发者通过onInterceptRequest 接口来实现自定义资源请求响应 自定义请求能力可以用于开发者自定义 Web 页面响应 自定义文件资源响应等场景

随机推荐

  • 每日一题:走路

    走路 题目 Daimayuan Online Judge f i j 表示第i步能否走到第j阶 include
  • uniapp打包微信小程序主包过大问题

    问题 在用uniapp打包微信小程序时提示文件超过了2M不让上传 主包中的vendor js太大1 7M有的甚至更大 解决 在HbuildX中运行时勾选上运行压缩 在微信开发者工具中上传时勾选上上传压缩 在manifest json中检查分
  • C语言 .c文件 到 .exe文件过程

    预处理 预处理相当于根据预处理命令组装成新的 C 程序 不过常以 i 为扩展名 编 译 将得到的 i 文件翻译成汇编代码 s 文件 汇 编 将汇编文件翻译成机器指令 并打包成可重定位目标程序的 o 文件 该文件是二进制文件 字节编码是机器指
  • OculusRiftS与Unity.UI的交互(1)-总览

    使用OculusIntegration包 VRTK还没有测试过 OculusIntegration提供的场景 包含了 键盘交互 VR摄像机 画布 凝视位置 光标 等节点 总览 这是默认的OVR UI场景的节点设置 之后 根据自身场景的需要
  • ARouter解析五:IoC与依赖注入

    终于来到了ARouter解析的第五篇了 前面陆陆续续分享了四篇ARouter框架的使用和源码内容 ARouter解析一 基本使用及页面注册源码解析ARouter解析二 页面跳转源码分析ARouter解析三 URL跳转本地页面源码分析ARou
  • 计算几何02_三次样条曲线

    一 样条 样条 Spline 函数是由舍恩伯格于1946年提出的 样条是富有弹性的细木条或有机玻璃条 它的作用相当于 万能 曲线板 早期船舶 汽车 飞机放样时用铅压铁压住样条 使其通过一系列型值点 调整压铁达到设计要求后绘制其曲线 称为样条
  • 计算机视觉:分割一切AI大模型segment-anything

    1 segment anything介绍 Segment Anything Model SAM 来源于Facebook公司Meta AI实验室 据Mata实验室介绍 SAM 已经学会了关于物体的一般概念 并且它可以为任何图像或视频中的任何物
  • 可拖拽分隔面板(vue-splitpane)

    使用 vue splitpane 组件可实现垂直或者水平的面板分隔 1 安装 npm install vue splitpane 2 引入 在需要引入 vue splitpane 的模块文件中进行引入 import splitPane fr
  • python安装程序打不开_使用PIP安装Python包会导致链接:致命错误LNK1104:无法打开文件“python27.lib”...

    我试图让PIP安装Twisted 但我得到了这个链接错误 我使用的是64位Windows8和Python2 7 10 我认为这个问题与visualstudio编译器有关 我有2009年和2010年 但我不确定它用的是哪一个 我已经看过大量关
  • 分布式的环境下, MySQL和Redis如何保持数据的一致性?

    问题 一台MySQL 一台Redis 两台应用服务器 用户的数据存储持久化在MySQL中 缓存在Redis 有请求的时候从Redis中获取缓存的用户数据 有修改则同时修改MySQL和Redis中的数据 现在问题是 1 先保存到MySQL和先
  • 安装python遇到错误_安装python2.7出错怎么解决

    Python是一种跨平台的计算机程序设计语言 是一种面向对象的动态类型语言 最初被设计用于编写自动化脚本 shell 随着版本的不断 更新和语言新功能的添加 越来越多被用于独立的 大型项目的开发 首先登录python官网 选择要下载的安装包
  • ElementUI浅尝辄止23:Loading 加载

    Loading加载组件 加载数据时显示动效 常见于加载数据量大的业务操作 附带动态效果 1 如何使用 区域加载 在表格等容器中加载数据时显示 Element 提供了两种调用 Loading 的方法 指令和服务 对于自定义指令v loadin
  • linux重置root用户密码

    重置root密码 法一 rd break 第 1 步 重启系统编辑内核参数 第 2 步 找到 linux 这行 在此行末尾空格后输入rd break End键也可直接进入行尾 成功后显示页面为 第 3 步 查看 可选 该步骤可省略 命令为
  • 把一个数组的第三到第六位之间的元素删除 形成一个新的数组

    思路一 找到第三和第六之间的4和5位 也就是下标位3和4的元素 删除之后再前移 思路二 找到第三和第六之间的4和5位 也就是下标位3和4的元素 运用if中continue关键字跳过这两个位置 思路一和思路二的区别是思路一元素前移最后两位是0
  • fio测试磁盘性能

    rwmixwrite是fio命令中一个用于指定读写比例的参数 它的含义是在随机读写的情况下 写操作的百分比 例如 rwmixwrite 30表示30 的操作是写操作 70 的操作是读操作 以下是一个示例命令 fio name mytest
  • 帝国cms发送ajax请求,[分享]美化ajax弹出的提示信息

    前台页面只需要在内容模板里面加上这两个文件 然后再修改一下 e data js ajax js var http request false function makeRequest url functionName httpType
  • 收藏学习!15个使用率超高的Python库

    今天给大家分享最近一年内PyPI上下载量最高的Python包 现在我们来看看这些包的作用 他们之间的关系 以及为什么如此流行 1 Urllib3 8 93亿次下载 Urllib3 是 Python 的 HTTP 客户端 它提供了许多 Pyt
  • Keil 5出现Error: L6218E: Undefined symbol解决方法

    目录 1 找到相关未定义函数 选中然后右击 GO TO Reference To ADC Cmd 2 发现该函数在stm32f10x adc h中 3 可以看到右边fwlib里没有相应 c文件 我们添加上 4 右击 选择manage pro
  • HTML怎么插入一段代码

    之前学习了点HTML的基础知识 在工作中给别人发邮件的时候 使用HTML插入超链接 这回需要插入一段代码块 语法 pre pre 将需要传入的代码放在 pre 和 pre 之间就可以了 浏览器自动识别 示例 p 这是一段代码块 p pre
  • linux查看内存占用情况(top、free、ps)

    top命令 top命令是Linux下常用的性能分析工具 能够实时显示系统中各个进程的资源占用状况 类似于Windows的任务管理器 运行 top 命令后 CPU 使用状态会以全屏的方式显示 并且会处在对话的模式 用基于 top 的命令 可以