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耗尽。
至此,这个之前稍微让我费解一点的问题基本上是弄清楚了。