Linux编程:通过 free 命令查看Linux系统实际可用内存大小 您所在的位置:网站首页 linux查看内存命令详解是什么意思啊手机 Linux编程:通过 free 命令查看Linux系统实际可用内存大小

Linux编程:通过 free 命令查看Linux系统实际可用内存大小

2024-07-08 22:50| 来源: 网络整理| 查看: 265

一、free 命令

通过 free 命令查看系统的内存使用情况,内存大小单位为 KB,执行结果如下图所示: free 通过 free -m 命令查看系统的内存使用情况,内存大小单位为 MB,执行结果如下图所示: free -m 通过 free -g 命令查看系统的内存使用情况,内存大小单位为 GB,执行结果如下图所示: 在这里插入图片描述

二、实际可用内存大小计算

从上方的图片得知, free 命令执行完成后,会显示 Mem、Swap 两行数据,其中 Mem 表示物理内存的使用情况,Swap 表示 Swap 分区的使用情况。

什么是 Swap 分区? Swap 分区是操作系统在硬盘上开辟的一块空间,当物理内存块被耗尽时,系统会将一些长时间没有使用的进程的内存转移到 Swap 分区;当物理内存被释放后,Swap 区的数据会随着进程的使用逐步回到物理内存中。

1、Mem 属性说明见下表:

属性属性值说明total8192MB总物理内存大小used601MB已使用物理内存大小free3998MB未分配物理内存大小shared0MB共享的物理内存大小buff/cache3591MB为了提高系统的读写速度(包含磁盘快的读写,文件 inode 的读写等),操作系统将部分内存作为缓存使用,该数值为缓存占用的物理内存大小available3998MB可用的物理内存大小,具体计算方法见:provide estimated available memory

2、Swap 属性说明见下表:

属性属性值说明total0MBSwap 分区的总大小used0MB已使用的 Swap 分区大小free0MB未使用的 Swap 分区大小

3、不考虑 Swap 分区 根据上表,在不考虑 Swap 分区的情况下,内存计算如下: 总内存大小:Mem.total = Mem.used + Mem.free + Mem.shared + Mem.buff/cache 理论上实际可用内存大小:Mem.actual = Mem.total - Mem.used - Mem.shared = Mem.free + Mem.buff/cache

4、考虑 Swap 分区 根据上表,在考虑 Swap 分区的情况下,内存计算如下: 总内存大小:Mem.total = Mem.used + Mem.free + Mem.shared + Mem.buff/cache 理论上实际可用内存大小:Mem.actual = Mem.total - Mem.used - Mem.shared + Swap.free = Mem.free + Mem.buff/cache + Swap.free

5、系统建议的可用大小 available available 官方定义:

MemAvailable: An estimate of how much memory is available for starting new applications, without swapping. Calculated from MemFree, SReclaimable, the size of the file LRU lists, and the low watermarks in each zone. The estimate takes into account that the system needs some page cache to function well, and that not all reclaimable slab will be reclaimable, due to items being in use. The impact of those factors will vary from system to system.

available 翻译:

memavailable:它是一个估计值,在不考虑 Swap 分区的情况下,估算有多少内存可用于启动新的应用程序。根据 memfree、可回收的page cache、slab cache、LRU队列的大小以及每个区域中的低水位线进行计算。该估计考虑到系统需要一些 page cache 才能正常运行,而且由于某些程序正在使用,并非所有可回收的 slab 都可以回收。这些因素的影响因系统而异。

available 计算公式见下图: 在这里插入图片描述 公式概括为: Mem.available = Mem.free + PageCache.size + SlabCache.size - WaterMark.low

属性属性值说明PageCache.size0MB可以回收的 PageCache 大小,计算公式见上图SlabCache.size0MB可以回收的 SlabCache 大小 ,计算公式见上图WaterMark.low0MB支持系统使用的最低水位线,计算公式见上图

因此在不考虑 Swap 分区的情况下,建议通过 available 参数判定系统的实际可用内容。文章内容仅代表个人观点,如有不正之处,欢迎批评指正,谢谢大家。

参考资料

1.Linux Page Cache机制,Page Cache、Slab Cache 2.Linux Page Cache的工作原理 3.Linux内存管理 (25)内存sysfs节点解读 4.Linux free命令前后变化和available内存 5.linux free 命令下free/available区别 6.index : kernel/git/torvalds/linux.git



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有