1896_Linux中free命令小结

2024-02-07 23:28
文章标签 linux 命令 小结 free 1896

本文主要是介绍1896_Linux中free命令小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1896_Linux中free命令小结

全部学习汇总: little_bits_of_linux: 一星半点的Linux经验 (gitee.com)

查看Linux中存储的使用情况,我经常使用htop,毕竟这个命令提供的信息是十分直观的。我现在常用的一个小主机其实是我的树莓派3B,虽然算不上多么高的配置,家用还是很适合的。

这个是我的树莓派现在的一个状态,这个树莓派的配置一应该是1GB内存,但是从这里的922M以及922M + 100得到的1022M似乎都不是很准确。如果准确,要么是1024M要么应该是存储商约定的1000M。由此,考虑到了一个之前教程中看到的free命令。

从内容的组成上,看起来更加让我费解。由此,尝试去阅读一下free命令的手册来弄清楚这个小问题。

这里对每一列的内容解释说的还是很清晰的,但是从我的疑惑方面还是没能得到解答。比如,这个swap到底是RAM还是文件系统?我的这个机器上真正的RAM究竟是多么大?

这些信息都是来自于/proc/meminfo文件,我把我的树莓派上的这个文件内容导出如下:

MemTotal:         944092 kB

MemFree:           26444 kB

MemAvailable:     738568 kB

Buffers:          565900 kB

Cached:           146856 kB

SwapCached:         2456 kB

Active:           180452 kB

Inactive:         613496 kB

Active(anon):      47576 kB

Inactive(anon):    47764 kB

Active(file):     132876 kB

Inactive(file):   565732 kB

Unevictable:          16 kB

Mlocked:              16 kB

SwapTotal:        102396 kB

SwapFree:           6084 kB

Zswap:                 0 kB

Zswapped:              0 kB

Dirty:              5316 kB

Writeback:             0 kB

AnonPages:         79612 kB

Mapped:            43024 kB

Shmem:             14124 kB

KReclaimable:      79052 kB

Slab:             101180 kB

SReclaimable:      79052 kB

SUnreclaim:        22128 kB

KernelStack:        1536 kB

PageTables:         4140 kB

SecPageTables:         0 kB

NFS_Unstable:          0 kB

Bounce:                0 kB

WritebackTmp:          0 kB

CommitLimit:      574440 kB

Committed_AS:    1110212 kB

VmallocTotal:    1114112 kB

VmallocUsed:        8268 kB

VmallocChunk:          0 kB

Percpu:              416 kB

CmaTotal:         262144 kB

CmaFree:             284 kB

结合上面的信息,或许树莓派的RAM大小应该是1024MB,之所以算出来不是这些是因为上面的解释中,Total部分其实是去掉了一些保留位以及系统的部分占用?究竟是否是如此,目前还真有几分说不清楚。

结合这两个参数的描述,如果使用-h的选项的时候独到的数据应该是按照1024作为对应的进制来衡量的。

这样,做一个折算: 1000 * 1000 * 1000 / 1024 / 1024 得到的结果应该是把一般的供应商的计量方式往计算机常规数据上做了一个转换。得到的数据应该是953MB。这个其实是接近于前面描述的总量减去一部分预留的说法了,由此可以大概推测,swap可能是文件系统提供的一部分空间。

关于swap究竟是什么,我又查了一下网络上的材料。我找到了如下网页:

Swap Memory: What It Is & How It Works (phoenixnap.com)

里面开篇的描述部分:

大概描述: swap存储,通常称为交换空间,是对计算机物理RAM的硬盘或SSD (Solid State drive)。当操作系统耗尽可用的RAM时,它会在内存之间交换数据RAM和交换空间。这种机制称为交换机制,增强了内存管理效率。交换内存对于RAM有限的系统或执行内存密集型任务的系统非常重要。如果没有交换内存,当RAM容量超过时,这些系统很容易崩溃。

这么看的话,这部分存储应该就是硬盘的一部分,只是说它可以充当一部分RAM的缓存区以防RAM耗尽。

至此,这个之前稍微让我费解一点的问题基本上是弄清楚了。

这篇关于1896_Linux中free命令小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/689240

相关文章

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境