`

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命令用法详解

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

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

    Linux系统命令源码包,包含Top,Free,ps,kill等命令

    Linux上的free命令详解

    解释一下Linux上free命令的输出。  下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如: FO[2][1] = 24677460 FO[3][2] = 10321516 1 2 ...

    检测Linux内存使用情况的free命令的10个例子

    Linux是有名的开源操作系统之一,它拥有着极其巨大的命令集。...  free命令用于检测物理内存和交换内存已使用量和可用量(默认单位为KB)。下面演示命令的使用情况。  # free  total used free 

    Linux常用命令汇总

    Linux常用命令汇总,用于初学者学习Linux知识 “Hello everybody out there using minix ---- I’m doing a free operating system” 1991.8,网络上出现了一篇以该句开头的一个帖子,发帖人就是一个芬兰的Linus ...

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

    作为一名linux系统管理员,监控内存的使用状态是非常重要的,监控内存最常使用的命令有free、top等,下面是某个系统free的输出

    linux必须的60个命令

    ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统...

    Linux常用命令大全.zip

    要想真正理解Linux系统,就必须从Linux命令学起, 通过基础的命令学习可以进一步理解Linux系统。 一、系统: # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/...

    Linux的free命令来显示系统中空闲和已使用的内存.docx

    Linux的free命令来显示系统中空闲和已使用的内存.docx

    linux命令大全

    ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统...

    57个Linux常用命令含参数介绍和使用示例

    系统监控:Linux中的命令可以用来监控系统的状态,如top、htop、free等,这些命令可以帮助用户了解系统的运行状态,及时发现和解决问题。 程序调试:Linux中的命令可以用来调试程序,如gdb、strace等,这些命令可以...

    Linux常用命令.txt

    Linux常用命令 内容概要:本文将介绍一些常用的Linux命令,这些命令适用于各种人群,无论是初学者还是经验丰富的用户。使用场景包括文件管理、系统监控、网络操作等。 适用人群:所有使用Linux操作系统的用户。 ...

    Linux应用技术:Linux系统命令.pptx

    项目3 Linux磁盘文件管理 第三讲 主要内容 Linux操作命令 Linux目录管理 Linux文件管理 拓展:管道和重定向 ...free命令 功能:查看当前系统内存的使用情况,包括系统中剩余和已用的物理内存和交换内存,

    Linux必学的60个命令

    ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、 crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、 finger、mail、 nslookup; ◆ ...

    linux常用命令以及服务器工作中常用命令

    系统状态相关命令,包括top、free、df、du和ps;以及服务器工作中常用的SSH连接命令、系统管理命令、网络管理命令和Web服务器相关命令。通过本文的介绍和示例,读者可以更好地了解和掌握这些常用命令,以便在Linux...

    freeradius连接mysql数据库+linux常用60个命令

    freeradius2.1.8 连接mysql5.1安装配置过程

    Linux基本命令的使用

    • free命令查看系统内存,虚拟内存的大小及占用情况 • date命令查看和设置当前日期和时间 • cal命令显示指定月份或年份的日历 • clock命令显示系统时钟 • ps命令查看系统进程 • kill命令向进程发送强制终止...

    简单了解Linux性能监控命令free

    linux提供了很多命令来协助我们快速定位到错误,free命令是Linux最常用的命令之一:它可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下未被使用的内存,以及缓冲区和缓存各自占用的内存情况。...

    linux命令大全-详细介绍linux命令

    介绍linux命令的文档,例如我们经常使用的df、cat、more、top、free、chmod、chown等等。

Global site tag (gtag.js) - Google Analytics