当前位置:七道奇文章资讯系统安全Linux安全
日期:2011-01-23 03:26:00  来源:本站整理

关于Linux利用的真实内存[Linux安全]

赞助商链接



  本文“关于Linux利用的真实内存[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

我们利用的LinuxWindows可不太一样,用top号令得出来的大概不是真实利用的内存,用free号令第二行才是系统真实利用的内存.假如发现PHP-CGI把你的内存占满了可不要惶恐哦.

Page cache和buffer cache一向以来是两个对比简单混合的概念,在网上也有很多人在辩论和猜想这两个cache到底有什么辨别,谈论到最后也一向没有一个统一和精确的结论,在我工作的这一段时间,page cache和buffer cache的概念曾经困扰过我,但是细心解析一下,这两个概念实际上非常的清楚.假如可以理解到这两个cache的本质,那么我们在解析io问题的时刻大概会越发得心应手.

Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache.文件的逻辑层需求映射到实际的物理磁盘,这种映射关系由文件系统来完成.当page cache的数据需求革新时,page cache中的数据交给buffer cache,但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作.

Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情形下,直接对磁盘举行操作的数据会缓存到buffer cache中,比方,文件系统的元数据城市缓存到buffer cache中.

简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据.在有文件系统的情形下,对文件操作,那么数据会缓存到page cache,假如直接采取dd等工具对磁盘举行读写,那么数据会缓存到buffer cache.

增补一点,在文件系统层每个设备城市分配一个def_blk_ops的文件操作办法,这是设备的操作办法,在每个设备的inode下面会存在一个 radix tree,这个radix tree下面将会安排缓存数据的page页.这个page的数目将会在top程序的buffer一栏中显示.假如设备做了文件系统,那么会生成一个 inode,这个inode会分配ext3_ops之类的操作办法,这些办法是文件系统的办法,在这个inode下面一样存在一个radix tree,这里会缓存文件的page页,缓存页的数目在top程序的cache一栏举行统计.从上面的解析可以看出,2.6内核中的buffer cache和page cache在处理上是保持一致的,但是存在概念上的差别,page cache针对文件的cache,buffer是针对磁盘块数据的cache,仅此罢了.

目前不都是只有page cache了吗? buffer pages其实也是page cache里面的页.只是多了一层抽象,通过buffer_head来举行一些拜候管理

对,从Linux算法实现的角度,page cache和buffer cache目前是一样的,但是从功效抽象和具体利用来说,这二者还是存在辨别的,这一点可以从top工具的统计信息中看得出来,关注一下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.

在终端中敲入:free

显示: total used free shared buffers cached

Mem: 255268 238332 16936 0 85540 126384

-/+ buffers/cache:26408 228860

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

我们利用total1、used1、free1、used2、free2 等名称来代表上面统计数据的各值,1、2 辨别代表第一行和第二行的数据.

total1:表示物理内存总量.

used1:表示总计分配给缓存(包含buffers 与cache )利用的数目,但此中大概部份缓存并未实际利用.

free1:未被分配的内存.

shared1:同享内存,普通系统不会用到,这里也不谈论.

buffers1:系统分配但未被利用的buffers 数目.

cached1:系统分配但未被利用的cache 数目.buffer 与cache 的辨别见背面.

used2:实际利用的buffers 与cache 总量,也是实际利用的内存总量.

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

可以整理出以下等式:

total1 = used1 + free1

total1 = used2 + free2

used1 = buffers1 + cached1 + used2

free2 = buffers1 + cached1 + free1   以上是“关于Linux利用的真实内存[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 一些关于linux ftp服务器安全倡议
  • <b>关于Linux系统顶用户权限问题</b>
  • 关于linux日记的问题
  • 关于Linux利用的真实内存
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .