`
san_yun
  • 浏览: 2662862 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

linux free 命令解释

 
阅读更多

 

linux系统内存实际使用率

 

Mem:表示物理内存统计

-/+ buffers/cached:表示物理内存的缓存统计

Swap:表示硬盘上交换分区的使用情况,这里我们不去关心。

系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存b并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。

 

第1行 Mem: total:表示物理内存总量。

used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。

free:未被分配的内存。

shared:共享内存,一般系统不会用到,这里也不讨论。

buffers:系统分配但未被使用的buffers 数量。

cached:系统分配但未被使用的cache 数量。

 

第2行 -/+ buffers/cached:

used:第一行中的used - buffers-cached, 也是实际使用的内存总量。

free:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。

free2 = buffers1 + cached1 + free1 //free2为第二行、buffers1等为第一行

所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached.

 

buffer 与cache 的区别

A buffer is something that has yet to be “written” to disk. A cache is something that has been “read” from the disk and stored for later use 第3行: 第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

更详细的解释参考:Difference Between Buffer and Cache

 

通过/proc/meminfo 获取内存信息

需要使用的指标有:MemTotal ,MemFree,Buffers,Cached

MemTotal:总内存大小

MemFree: 空闲内存大小

Buffers和Cached:磁盘缓存的大小

 

 

直观的看,此时free的内存会非常小,但并不代表可用的内存小,当一个程序需要申请较大的内存时,如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。

 

下面是我们一台文件服务器,可以看到92G的内存基本全被cache起来了,因为大量访问文件。



 

参考:

手工释放linux内存——/proc/sys/vm/drop_caches

http://www.linuxfly.org/post/320/

 

理解Linux的性能

http://www.linuxfly.org/post/114/

 

Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决

http://www.cnblogs.com/panfeng412/p/drop-caches-under-linux-system.html

 

Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决(续)

http://www.cnblogs.com/panfeng412/p/3478442.html

 

  • 大小: 89.8 KB
分享到:
评论

相关推荐

    Linux系统命令top,ps,kill,free,vmstat等命令的源码

    3. **free命令**:`free`用来查看系统中的物理内存和交换内存的使用情况。通过分析源码,我们可以看到它是如何读取`/proc/meminfo`文件来获取内存统计数据的,以及如何计算和展示不同类型的内存(如已用、空闲、缓存...

    Linux上的free命令详解

    在Linux系统中,`free`命令是一个非常实用的工具,用于查看系统内存的状态,包括物理内存(RAM)和交换空间(Swap)。通过分析`free`命令的输出,我们可以获取到系统内存使用的详细信息,这对于系统管理员监控和优化...

    linux free命令详解

    《深入解析Linux free命令》 Linux操作系统中,监控系统资源的使用情况是日常管理的重要一环,其中`free`命令便是用来查看系统内存使用状态的工具。本文将详细介绍`free`命令的使用方法和解析其输出结果,以帮助...

    嵌入式Linux内存管理之free命令

    内存监控是系统管理的一个重要环节,而free命令作为Linux系统中常用的内存状态查看工具,能够帮助管理员快速了解系统内存的使用情况。 Free命令提供了系统中物理内存和交换空间(swap)的当前状态,包括总量、已...

    Linux命令大全完整版.pdf

    - 系统监控命令:如free(显示内存使用情况)、df(显示磁盘空间使用情况)、vmstat(显示虚拟内存状态)等,用于监控系统资源的使用情况。 - 系统服务控制命令:如shutdown(关闭系统)、reboot(重启系统)、halt...

    Linux free命令用法详解

    Linux free命令 Linux free命令用于显示内存状态。 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。 语法free [-bkmotV][-s ] 参数说明: -b 以Byte...

    suse linux常用命令

    "Suse Linux常用命令" Suse Linux是一种流行的Linux发行版,广泛应用于服务器和桌面环境中。本文将对Suse Linux常用的命令进行总结,帮助初学者快速掌握Suse Linux的基本操作。 目录管理 在Suse Linux中,目录...

    linux命令手册.pdf

    Linux命令手册是Linux系统用户和管理员的重要参考资料,它详尽地阐述了如何在命令行界面中执行各种操作。对于新手来说,这份手册是快速学习和理解Linux操作的基础。以下是手册中涉及的一些关键知识点: 1. **...

    linux核心命令速查

    除了这些常见命令之外,《linux核心命令速查》还可能包括许多其他命令以及它们的高级使用技巧,例如用于系统监控的`vmstat`、`iostat`、`free`,用于任务调度的`cron`和`at`,以及用于用户和权限管理的`useradd`、`...

    dos命令与linux的命令

    17. **显示内存使用情况**:DOS的`mem`在Linux中对应`free`命令,显示内存和交换空间的使用情况。 在Linux中,命令通常有更多的选项和参数,使得操作更加精细。此外,Linux Shell支持管道(pipe)和重定向...

    第2章 Linux基础命令.ppt第2章 Linux基础命令.ppt

    在IT领域,Linux操作系统是广泛应用于服务器和开发环境的基础平台,掌握其基础命令对于任何IT专业人员来说至关重要。本章主要介绍了Linux系统中的一些基本命令,涵盖了用户管理、系统管理、文件目录操作、打包压缩、...

    linux-Linux命令大全内容包含Linux命令手册详解学习搜集

    本资源"Linux命令大全"包含了516个Linux命令的详细资料,对于学习和理解Linux操作系统至关重要。下面,我们将深入探讨这个资源中涉及的一些关键知识点。 1. **命令手册**: - 在Linux世界中,命令手册(man pages...

    linux命令分类总结

    5. free命令:free命令用于显示当前系统中的内存信息。它可以显示当前系统中的内存信息,并可以使用参数来设置显示的模式。 示例:free -m 网络管理命令 1. ping命令:ping命令用于测试网络连接。它可以测试网络...

    linux基本命令大全.pdf

    Linux 基本命令大全 本文档旨在总结 Linux 系统中常用的基本命令,涵盖用户管理、文件管理、目录管理、权限管理、磁盘管理、进程管理、网络管理等方面。 用户管理 * useradd 创建用户 * usermod 修改用户信息 * ...

    Linux命令大全完整版

    本资源将对 Linux 命令大全进行详细的介绍和解释。 adduser adduser 命令用于添加新用户到 Linux 系统中。其基本语法为:`adduser [用户名]`。例如,添加一个名为 "user1" 的用户可以使用命令 `adduser user1`。在...

    解析linux中的free

    ### 解析Linux中的Free命令 在Linux系统管理与性能监控中,`free`命令是非常重要的工具之一。通过这个命令,我们可以获取当前系统内存的使用情况,包括物理内存、虚拟内存(交换空间)以及缓存等信息。这对于理解...

    Linux基本命令大全.doc

    Linux 基本命令大全 Linux 操作系统提供了许多基本命令来帮助用户管理和维护系统。这些命令可以分为多个类别,包括用户管理、文件管理、进程管理、网络管理等。下面我们将介绍一些常用的基本命令。 一、注销、关机...

    linux60个常用命令总结

    系统管理相关命令包括 df、top、free、quota、at、lp、adduser、groupadd、kill、crontab 等,都是用于系统管理和维护的命令。这些命令可以帮助用户管理系统资源、计划任务、管理用户和组、管理进程等。 网络操作...

    Linux常用命令笔记

    ### Linux常用命令笔记 #### 一、Linux命令基础 Linux是一种强大的开源操作系统,适用于服务器、桌面和嵌入式系统等多种应用场景。了解基本的Linux命令对于有效地管理这些系统至关重要。 ##### 查看帮助文档 - *...

    Linux命令大全 Linux命令大全

    本篇将详细介绍Linux命令大全,涵盖常用和进阶的命令,帮助你更好地理解和运用Linux。 一、文件与目录操作 1. `ls`:列出当前目录下的文件和子目录。 2. `cd`:改变当前工作目录。 3. `mkdir`:创建新目录。 4. `...

Global site tag (gtag.js) - Google Analytics