`
xitonga
  • 浏览: 586326 次
文章分类
社区版块
存档分类
最新评论

从free命令看内存使用

 
阅读更多

free命令是查看内存使用情况的利器。 free命令的语法相对来说是比较简单的,如下:

usage: free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]
  -b,-k,-m,-g show output in bytes, KB, MB, or GB
  -l show detailed low and high memory statistics
  -o use old format (no -/+buffers/cache line)
  -t display total for RAM + swap
  -s update every [delay] seconds
  -c update [count] times
  -V display version information and exit

这个都比较容易理解,简单的翻译一下。

  1. -b -k -m -g 这是表示显示内存的单位,分别以字节、KB、MB及GB来显示。
  2. -l,因为在Linux系统中内存中有低区和高区之分,内核能够直接寻址的区域太小,好像是只有896M(在32位机器上),其它的都是高区域内存。如果指定-l选项,可以显示Low和High Region的内存总量。
  3. -o,不显示buffers和Cache信息。
  4. -s和-c ,可以让free命令一直运行,-s表示多长时间更新一次free命令的输出信息。-c选项表示一共输出多少次。

看一个具体的输出如下:
             total       used       free     shared    buffers     cached
Mem:      32797280   32578864     218416          0     112644   20436872
-/+ buffers/cache:   12029348   20767932
Swap:     33554424       1356   33553068

一,内存(交换区)使用信息
上面输出的第一行的信息如下:
  1. (total)表示物理内存(交换区)的总量。
  2. (used)已经使用的内存(交换区)总量。
  3. (free)空闲的物理内存(交换区)总量。
  4. (shared)共享的物理内存总量。
  5. (buffers)系统已经分配但没有被使用的缓冲区总量。表示当前空闲
  6. (cached)系统已经分配但没有被使用的缓存总量。表示当前空闲
二,缓冲和缓存数据信息
  1. (used),实际使用的buffers/cache的总量。
  2. (free),当前系统还没有被使用的buffers/cache 和 未被分配的内存之和,一般来说,这就是当前系统还可以使用的内存总量。

三,系统分配了哪些内存
上面看到物理内存的使用是 32578864,那么这些内存是给谁使用了?

根据上面的解释,那么系统当前已经分配的内存应该是这几个部分:buffers/cache的已经使用部分、内存的buffers和内存的cached(因为这是已经分配了的,只是没被使用)。
也就是说,下面这个式子是成立的:
(Mem).used = (-/+ buffers/cache).used+ (Mem).buffers + (Mem).cached 。

32578864 =12029348 + 112644 +  20436872//上面的输出数据替换之后

外还可以发现 下面的数据是成立的:
(Mem).total = (buffers/cache).used + (buffers/cache).free 。

什么会是这种情况,这不相当于所有的内存都是buffers或者cache,答案:是的。这和Linux的内存分配机制有关系。

在linux的内存分配机制中,如果有物理内存的话,都会全部优先使用,只有物理内存还有空闲,就绝对不会释放已经被分配的内存。哪怕是分配这个内存的进程已经不存在了,也不会释放这个进程所申请的内存。将所有这些内存都用作系统缓存。这样的话,就不需要经常向内核申请内存了,使得一方面内存分配效率提高,二方面(有时)分利于数据的读取。

分享到:
评论

相关推荐

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

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

    free 详解 查看内存情况

    linux操作系统 free命令 详解 查看监控内存情况详解;

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

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

    free命令 显示系统内存情况

    free 命令能够显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存。这些信息是通过解析文件 /proc/meminfo 而收集到的。 不带任何选项运行 free 命令会显示系统内存,包括空闲...

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

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

    Linux 下如何检查内存使用率

    free命令是检查一个 Linux 系统中内存使用率最常用的命令。它显示关于内存总量,已经使用的内存以及空闲内存的相关信息。 通常, free 运行时加上-h选项,意味着以人类可读的格式打印输出: free -h total used ...

    Linux free命令用法详解

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

    yiyulianzhou#PHP-NOTES#free命令1

    free命令free命令是用来查看内存占用情况, -m表示以M为单位显示, -h表示以方便阅读的方式显示参数说明total 内存总数used 已经使用的内存数f

    内存管理内存管理内存管理

    要理解内存在程序中是如何分配的,首先需要理解如何将内存从操作系统分配给程序。计算机上的每一个进程都认为自己可以访问所有的物理内存。显然,由于同时在运行多个程序,所以每个进程不可能拥有全部内存。实际上...

    Linux基本命令的使用

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

    linux 清理内存命令详细介绍

    linux 清理内存命令 1.清理前内存使用情况 free -m 2.开始清理  echo 1 > /proc/sys/vm/drop_caches 3.清理后内存使用情况 free -m 4.完成! 查看内存条数命令: # sync # echo 1 > /proc/sys/vm/drop_caches ...

    Linux上的free命令详解

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

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

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

    Linux系统查看内存使用率

    Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如:  Mem: 4086496k total, 4034428k used, 52068k free, 112620k buffers  Swap: 4192956k total,...

    Linux系统内存使用经验

    Linux的内存管理,实际上跟windows的内存管理有很相像的地方,都是用虚拟内存这个的概念,文中介绍了在Linux下查看内存用的command free命令,并对反回的参数进行解释。

    个人资料收藏.rar(Linux系统提供了很多关于系统和特定进程对于内存的使用情况的探测和管理工具,其中最耳熟能详的就是free和top)

    个人资料收藏,Linux系统提供了很多关于系统和特定进程对于内存的使用...free命令可以为用户提供系统级的内存使用情况报告,top命令更为强大,其可以提供整个系统中所有进程的当前状态信息,当然包括内存使用情况信息。

    1772793156#BigData-1#Linux的free命令1

    1、显示内存使用情况 2、以总和的形式显示内存的使用信息 3、周期性查询内存使用信息

    Linux的free命令详解-内存是拿来用的

    绍linux的free命令。

    Linux吃掉我的内存

    而当我们使用free命令查看Linux系统内存使用情况时,会发现内存使用一直处于较高的水平,即使此时系统并没有运行多少软件。这正是Windows和Linux在内存管理上的区别,乍一看,Linux系统吃掉我们的内存(Linux ate my...

    Linux 内存释放命令详解

    1.free -m 查看内存的使用情况,-m表示单位是兆 2.echo 1 > /proc/sys/vm/drop_caches 以上内容比较简单,成功的给大家介绍了Linux 内存释放命令的知识,希望能够帮助到大家! 您可能感兴趣的文章:php查找指定目录...

Global site tag (gtag.js) - Google Analytics