`

Linux free命令

 
阅读更多

 

我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。

所以 空闲内存=free+buffers+cached=total-used

 

$ free -m

                   total       used       free     shared    buffers     cached

Mem:          1002        769        232          0         62        421

-/+ buffers/cache:       286        715

Swap:         1153         0           1153

 

第一部分Mem行:

total 内存总数: 1002M                      used 已经使用的内存数: 769M

free 空闲的内存数: 232M                  shared 当前已经废弃不用,总是0

buffers Buffer 缓存内存数: 62M        cached Page 缓存内存数:421M

 

关系:total(1002M) = used(769M) + free(232M)

 

第二部分(-/+ buffers/cache):

(-buffers/cache) used内存数:286M (指的第一部分Mem行中的used - buffers - cached)

(+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)

 

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。(从这里我们可以看出,实际上 :可用内存=第一部分Mem行中的free + buffers + cached,并不是只有free部分)

第三部分是指交换分区。

 

我想大家看了上面,还是很晕.第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为什么这么奇怪.

其实我们可以从二个方面来解释.

对操作系统来讲是Mem的参数.buffers/cached 都是属于被使用,所以它认为free只有232.

对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。

 

所以,以应用来看看,以(-/+ buffers/cache)的free和used为主.所以我们看这个就好了.另外告诉大家一些常识.Linux为了提高磁盘和内存存取效率, Linux做了很多精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache能有效缩短了 I/O系统调用(比如read,write,getdents)的时间。

 

记住内存是拿来用的,不是拿来看的.不象windows,无论你的真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常 常提示虚拟空间不足的原因.你们想想,多无聊,在内存还有大部分的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要 不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准哦.

 

补充:cat   /proc/meminfo

可以查看内存的详细使用情况,free的结果由此文件生成。

占用内存的测量

  测量一个进程占用了多少内存,linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。

  /proc/meminfo 机器的内存使用信息

  /proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。

  /proc/pid/statm 进程所占用的内存

 

  http://www.cnblogs.com/serendipity/archive/2011/08/18/2144117.html

 

分享到:
评论

相关推荐

    linux free命令详解

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

    Linux free命令用法详解

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

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

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

    Linux上的free命令详解

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

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

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

    Linux命令大全完整版.pdf

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

    suse linux常用命令

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

    linux命令手册.pdf

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

    dos命令与linux的命令

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

    linux核心命令速查

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

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

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

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

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

    linux基本命令大全.pdf

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

    Linux基本命令大全.doc

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

    linux命令分类总结

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

    Linux命令大全(CHM格式离线版)

    Linux命令大全(CHM格式离线版) Linux命令大全(修改版) 进行重新编译的说明 文件传输 bye ftp ftpcount ftpshut ftpwho ncftp tftp uucico uucp uupick uuto 备份压缩 ar bunzip2 bzip2 bzip2recover compress cpio ...

    linux60个常用命令总结

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

    Linux常用命令大全

    本资料“Linux常用命令大全”详细汇总了Linux环境中最常用的命令,旨在为用户提供全面的学习参考。 1. 文件和目录管理: - `ls`:列出目录内容,可以使用 `-l` 显示详细信息,`-a` 显示所有文件,包括隐藏文件。 ...

    Linux基础命令.pdf

    ### Linux基础命令详解 #### 2.1 Linux常用命令 Linux作为一款强大的开源操作系统,以其卓越的稳定性和安全性著称。对于初学者来说,掌握基本的Linux命令是至关重要的。以下将详细介绍Linux基础命令,包括命令的...

    Linux命令大全 Linux命令大全

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

Global site tag (gtag.js) - Google Analytics