Ubuntu 实时查看显存调用命令 free 及命令详解与原理说明(全)

Ubuntu 实时查看显存调用命令 free 及详解

文章目录

  • Ubuntu 实时查看显存调用命令 free 及详解
    • 1 free 作用
      • 1.1 语法:
      • 1.2 单独显示例子
      • 1.3 组合显示例子
    • 2 输出介绍
    • 3 原理解释
      • 3.1 buff / cache(即 buffer / cache)
          • 3.1.1 buffer 缓冲区
          • 3.1.2 cache 页高速缓存
          • 3.1.3 对比
      • 3.2 free 与 available
      • 3.3 交换空间 (swap space)
    • 4 /proc/meminfo 文件

1 free 作用

要想实时查看系统内存的情况,首先要知道 free 命令作用是什么。
free 命令显示系统内存的使用情况,包括物理内存、交换内存**(swap)**和内核缓冲区内存等。(默认为 kb
命令效果如图所示:
在这里插入图片描述

1.1 语法:

	free [选项]

使用man命令、–help命令、info命令可查询free命令的所有选项,以–help为例,如:
在这里插入图片描述

具体显示内存时候的语法:

free [-hbkmotV][-s <间隔秒数>]

参数表:

	参  数:-b  以Byte为单位显示内存使用情况。-k  以KB为单位显示内存使用情况。-m  以MB为单位显示内存使用情况。-h   以比较人性化的方式显示内存使用情况。-o  不显示缓冲区调节列。-s   <间隔秒数>  持续观察内存使用状况。-t  显示内存总和列。-V  显示版本信息。   -w   wide output

1.2 单独显示例子

  1. free -b:以 Bytes 为单位来显示内存的信息
    在这里插入图片描述

  2. free -k:以 KB 为单位来显示内存的信息
    在这里插入图片描述

  3. free -m:以 M 为单位来显示内存的信息
    在这里插入图片描述

  4. free -g:以 G 为单位来显示内存的信息
    在这里插入图片描述

  5. free -h:以适于人类可读方式显示内存信息。-h 与其他命令最大不同是 -h 选项会在数字后面加上适于人类可读的单位
    在这里插入图片描述
    在大于** 1 数字后是 G(GB) 字母。当数字并没有达到 GB **时,**free **足够聪明来知道并在每个数字后面跟上合适的单位。

  6. free -l:显示高低内存的利用率
    在这里插入图片描述

  7. free -t:显示 linux 的全部内存
    在这里插入图片描述

  8. free -s N:表示每隔 N 秒打印一次内存信息,直到用 ctrl+c 结束
    在这里插入图片描述

  9. free -V :显示版本信息
    注意 V 一定要大写
    在这里插入图片描述

  10. free -wwide output
    -w 选项表示以宽格式显示结果,使得输出更易读
    在这里插入图片描述

1.3 组合显示例子

free 命令的选项是可以组合的:

  1. free -hs 3: 以人类可读的方式,每隔 3s 打印一次内存信息,直到 ctrl+c 结束
    在这里插入图片描述
  2. free -s 2 -c 4:每隔 2s 打印一次内存信息,共打印 4 次
    在这里插入图片描述
  3. free -m -s 3 -c 3:以m为单位来显示内存的信息,每隔 3s 打印一次内存信息,共打印 3 次
    在这里插入图片描述

2 输出介绍

为了方便下面的说明,在此从左到右依次解释显示的输出内容:

  • 行:

    • Mem: 是内存的使用情况。
    • Swap: 是交换空间的使用情况。
  • 列:

    • total: 显示系统总的可用物理内存和交换空间大小。
    • used: 显示已经被使用的物理内存和交换空间。
    • free: 显示还有多少物理内存和交换空间可用使用。
    • shared: 显示被共享使用的物理内存大小。
    • buff/cache: 显示被 buffer 和 cache 使用的物理内存大小。
    • available: 显示还可以被应用程序使用的物理内存大小。

理解了一些基本概念之后,上面的输出才能帮助我们了解系统的内存状况。

3 原理解释

3.1 buff / cache(即 buffer / cache)

buffercache 应该是两种类型的内存,但是 free 命令把它们放在一起,那么需要先来搞清楚 buffercache 的含义。buffer 在操作系统中指 buffer cache,即 “缓冲区”。cache 在操作系统中指 page cache,中文一般翻译为 “页高速缓存”。

3.1.1 buffer 缓冲区

要理解 buffer 缓冲区,须明确另外两个概念:“扇区” 和 “块”

  • 扇区:是设备的最小寻址单元,也叫 “硬扇区” 或 “设备块”。
  • 块:是操作系统中文件系统的最小寻址单元,也叫 “文件块” 或 “I/O 块”。

每个块包含一个或多个扇区,但大小不能超过一个页面,所以一个页可以容纳一个或多个内存中的块。当一个块被调入内存时,它要存储在一个缓冲区中。每个缓冲区与一个块对应,它相当于是磁盘块在内存中的表示(下图来自互联网)

在这里插入图片描述

注意,buffer cache 只有块的概念而没有文件的概念,它只是把磁盘上的块直接搬到内存中而不关心块中究竟存放的是什么格式的文件。(可以理解为快递件打包后整件运送,但是包裹里面东西可能完整、也可能细碎)

3.1.2 cache 页高速缓存

cache 页高速缓存是内核实现的磁盘缓存。它主要用来减少对磁盘的 I/O 操作。具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。页高速缓存缓存的是内存页面。缓存中的页来自对普通文件、块设备文件(这个指的就是 buffer cache 呀)和内存映射文件的读写。

页高速缓存对普通文件的缓存可以这样理解:当内核要读一个文件(比如 /etc/hosts)时,它会先检查这个文件的数据是不是已经在页高速缓存中了。如果在,就放弃访问磁盘,直接从内存中读取。这个行为称为缓存命中。如果数据不在,就是未命中缓存,此时内核就要调度块 I/O 操作从磁盘去读取数据,然后内核将读来的数据放入页高速缓存中。
这种缓存的目标是文件系统可以识别的文件(比如 /etc/hosts)。
页高速缓存对块设备文件的缓存就是在前面的 buffer cahce。因为独立的磁盘块通过缓冲区也被存入了页高速缓存(缓冲区最终是由页高速缓存来承载的)。

3.1.3 对比

所以缓冲区和页高速缓存,实现方式都是一样的。缓冲区只不过是一种概念上比较特殊的页高速缓存。
free 命令显示的是 buff/cache, 是因为缓冲区和页高速缓存的实现并非天生就是统一的。在 linux 内核 2.4 中才将它们统一。更早的内核中有两个独立的磁盘缓存:页高速缓存和缓冲区高速缓存前者缓存页面,后者缓存缓冲区。只不过现在这两个差不多了,不用太过纠结。

3.2 free 与 available

这两个数据意义比较相近,但时存在不同
free真正尚未被使用的物理内存数量。
available从应用程序的角度看到的可用内存数量。
Linux 内核为了提升磁盘操作的性能,会消耗一部分内存去缓存磁盘数据,即 buffer 和 cache。所以对于内核来说,buffer 和 cache 都属于已经被使用的内存。当应用程序需要内存时,如果没有足够的 free 内存可以用,内核就会从 buffercache 中回收内存来满足应用程序的请求。所以从应用程序的角度来说,available = free + buffer + cache
请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。

3.3 交换空间 (swap space)

swap space 是磁盘上的一块区域,可以是一个分区,也可以是一个文件。所以具体的实现可以是 swap 分区也可以是 swap 文件。当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,这就是常说的换出和换入。

交换空间可以在一定程度上缓解内存不足的情况,但是它需要读写磁盘数据,所以性能不是很高。

现在的机器一般都不太缺内存,如果系统默认还是使用了 swap 是不是会拖累系统的性能?理论上是的,但实际上可能性并不是很大。
并且内核提供了一个叫做 swappiness 的参数,用于配置需要将内存中不常用的数据移到 swap 中去的紧迫程度。这个参数的取值范围是 0~1000 告诉内核尽可能的不要将内存数据移到 swap 中,也即只有在迫不得已的情况下才这么做,而 100 告诉内核只要有可能,尽量的将内存中不常访问的数据移到 swap 中。在 ubuntu 系统中,swappiness 的默认值是 60。如果我们觉着内存充足,可以在 /etc/sysctl.conf 文件中设置 swappiness

修改内容如下:

	vm.swappiness=10

4 /proc/meminfo 文件

free 命令中的信息都来自于 /proc/meminfo 文件。/proc/meminfo 文件包含了更多更原始的信息,只是看起来不太直观:
也可以通过查看这个文件里面的数据,查看额定值
在这里插入图片描述

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

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

相关文章

Linux入门攻坚——12、Linux网络属性配置相关知识2

CentOS 7网络属性配置&#xff1a; 传统命名机制&#xff1a;以太网eth[0,1,2,...]&#xff0c;wlan[0,1,2...] 可预测功能的命名机制&#xff1a; udev支持多种不同的命名方案&#xff1a; Firmware &#xff0c;拓扑结构 在对待设备文件这块&#xff0c;Linux改…

不知道题目是啥

本题是学校的集训里的题&#xff0c;所有不知道题目名字是啥&#xff0c;直接看题目就好 解题思路&#xff1a;因为字符串只含有小写字母&#xff0c;所以可以创建两个数组分别来存s和t的每个字母出现次数&#xff0c;然后遍历数组&#xff0c;如果s字符串中的某个字母比t的小&…

TurboDesign安装包及安装教程

下载链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1I_jMid-z186GgvyH3ZExGQ 提取码&#xff1a;z936 1.解压下载好的压缩包。 2.进入解压后的文件夹并点击进入“ADT TURBODesign Suite 6.4.0”。 3.点击“安装包”进入文件夹。 4.找到“setup.exe”并右键点…

Java中异常处理-详解

异常&#xff08;Exception&#xff09; JVM 默认处理方案 把异常的名称&#xff0c;异常的原因&#xff0c;及异常出错的位置等信息输出在控制台程序停止执行 异常类型 编译时异常必须显示处理&#xff0c;否则程序会发生错误&#xff0c;无法通过编译运行时异常无需显示处理…

谓词-量词、主析取、主和取范式、前束范式、推理证明

这部分内容&#xff0c;主要需要掌握谓词推理&#xff0c;而前提是掌握将自然语言符号化为谓词、用量词来限定辖域&#xff0c;量词的消去、剩下就是推理过程。还需要掌握的是主析取、主和取范式和前束范式。 存在量词∃&#xff1a;至少有一个 全称量词∀&#xff1a;全都是…

Qt QCheckBox复选按钮控件

文章目录 1 属性和方法1.1 文本1.2 三态1.3 自动排他1.4 信号和槽 2 实例2.1 布局2.2 代码实现 Qt中的复选按钮类是QCheckBox它和单选按钮很相似&#xff0c;单选按钮常用在“多选一”的场景&#xff0c;而复选按钮常用在"多选多"的场景比如喜欢的水果选项中&#xf…

文献阅读1

A Hierarchical Representation Network for Accurate and Detailed Face Reconstruction from In-The-Wild Images 会议/期刊&#xff1a;CVPR 2023&#xff1b;阿里达摩院&#xff1b;Biwen Lei 概述&#xff1a;这是一篇单张图片三维人脸重建的论文&#xff0c;这篇论文的…

微机原理常考简答题总结

一&#xff0c;8086和8088这两个微处理器在结构上有什么异同&#xff1f; &#xff08;1&#xff09;共同点&#xff1a;内部均由EU、BIU组成&#xff0c;结构基本相同&#xff1b;寄存器等功能部件均为16位&#xff1b;内部数据通路为16位&#xff1b;指令系统相同。 &#x…

mercury靶机

文章妙语 不与伪君子争名&#xff0c;不与真小人争利&#xff0c;不与执拗人争理&#xff0c;不与匹夫争勇&#xff0c;不与酸儒争才。不与蠢人施恩 一、信息收集 主机探测 端口探测 探测主机详细版本信息 8080开了http服务 目录扫描 robots.txt目录下什么也没有 二&#xff0…

MongoDB查找命令find,让数据返回称心如意

业务系统接入数据库后&#xff0c;每天都有大量的数据写入数据库。面对逐日增加的数据&#xff0c;开发人员或数据分析人员&#xff0c;该如何读取数据&#xff0c;怎样设置条件&#xff0c;从数据库中查询数据&#xff1f; 本文基于mongodb的官方文档&#xff0c;整理出find命…

SpringBoot+Hutool实现图片验证码

图片验证码在注册、登录、交易、交互等各类场景中都发挥着巨大作用&#xff0c;能够防止操作者利用机器进行暴力破解、恶意注册、滥用服务、批量化操作和自动发布等行为。 创建一个实体类封装&#xff0c;给前端返回的验证码数据&#xff1a; Data public class ValidateCodeV…

中国智造闪耀CES | 木牛科技在美国CES展亮相多领域毫米波雷达尖端方案

素有全球科技潮流“风向标”之称的2024国际消费类电子产品展&#xff08;CES&#xff09;&#xff0c;于1月9-12日在美国拉斯维加斯会议中心举办。CES是全球最大的消费电子和消费技术展览会之一&#xff0c;汇集了世界各地优秀的消费电子和科技公司&#xff0c;带着最好的产品来…