关于Linux使用的真实内存
时间:2023-03-19 05:34:06 点击:164

  我们使用的Linux和Windows可不太一样,用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

展开 ↓
标签: 《天涯明月刀》手游帮贡怎么获得的(天涯明月刀手游帮贡怎么使用) 奥日与精灵意志先祖之光(奥日与精灵意志先祖之光怎么使用) csgo各种枪的使用技巧(csgo各种枪的使用技巧图解) 白蚁巢的作用(白蚁巢的药用价值怎么使用) 《亿万僵尸》木制科技使用技巧指南(亿万僵尸木工坊拆掉) csgo各种枪的使用技巧(csgo枪械指令大全) 《暗黑破坏神3》牧牛杖制作攻略图(暗黑破坏神3牧牛杖使用方法) sd高达g世纪火线纵横角色能力怎么使用(sd高达g世纪火线纵横能力选择) 《僵尸世界大战》强力武器推荐(僵尸世界大战独特版本武器怎么使用) 《猎杀:对决》重型左轮使用技巧是什么(《猎杀:对决》重型左轮使用技巧是什么样的) 《战地5》刘易斯机枪使用教学(战地5刘易斯机枪) 《战地5》侦察兵m30使用详解图(战地五侦察兵配置) nba2k21真实比赛gs设置(nba2k22真实参数) 《阴阳师》真实之羽活动奖励怎么领(阴阳师真言) 《机器人角斗场》全方位打击使用方法介绍(机器人角斗场操作键) csgostattrak数据互换器(csgo使用数据互换器会影响交易吗?) 《毁灭战士:永恒》皮肤使用方法介绍图(毁灭战士永恒皮肤怎么获得) 《无双大蛇3》王元姬使用技巧分享(无双大蛇3王异) 《lol手游》表情使用方法是什么(英雄联盟手游表情使用) 《部落幸存者》alpha版本使用攻略分享(《部落幸存者》alpha版本使用攻略分享) 《解忧娃娃》app怎么使用教程(《解忧娃娃》app怎么使用教程下载) 《无双大蛇3》风魔小太郎使用技巧指南攻略(无双大蛇3风斩怎么出) 《第五人格》互动动作玩家如何使用皮肤(第五人格怎样使用皮肤) apex英雄操作指南(apex英雄新手教程使用你的绝招技能) 《吸血鬼幸存者》怎么使用提拉米苏超武的技能(吸血鬼模组储血器合成表) ddg研磨机(研磨机使用说明) lol橙色精粹怎么使用(英雄联盟橙色精粹如何使用什么用) 《明日方舟》怎么安装模组的(明日方舟怎样使用模组) apex澳区充值能便宜多少(apex澳服充值无法使用支付宝) 《破晓传说》战斗系统详细分析(破晓传说战斗中怎么使用道具) 《无双大蛇3》甄姬使用技巧分享大全(《无双大蛇3》甄姬使用技巧分享大全下载) 奥日和萤火意志精灵碎片怎么使用(奥日和萤火意志精灵碎片怎么使用的) 《暗黑破坏神3》沈老贪的真实身份是什么(暗黑3沈老贪到底是谁) 《无双大蛇3》关羽使用技巧指南(无双大蛇z关羽特技) 《无双大蛇3》小少将使用技巧指南(无双大蛇3u武将收集) dayz发电机使用教程(dayz怎么给电池充电) dnf土罐真实身份(地下城土罐) 阿尔法机器人播放(阿尔法机器人使用说明) 《无双大蛇3》庞德使用技巧指南(无双大蛇3张郃) 《暗黑破坏神3》沈老贪的真实身份是谁(暗黑破坏神3贪魔) 《无双大蛇3》庞德使用技巧指南(无双大蛇3关平) apex亡灵使用技巧(apex亡灵教学) 《消逝的光芒2》突进技能使用方法介绍(消逝的光芒2新演示) cf黑骑士使用技巧教学(cf黑骑士功能) 《和平精英》猫大人召唤币怎么用不了(和平精英猫大人召唤币怎么使用) csgo准星代码如何使用(csgo准星指令大全) 暗黑地牢物品携带(暗黑地牢使用物品) 《诺亚之心》连携机制怎么使用的(诺亚之心能赚钱吗) 《鬼谷八荒》前期npc使用方法攻略(《鬼谷八荒》前期npc使用方法攻略图) 《喷射战士2》复仇技能使用技巧指南在哪(《喷射战士2》复仇技能使用技巧指南在哪) 《消逝的光芒2》大锤敌人技能使用推荐图(消逝的光芒2大小) 《真实拳击2》游戏解析(真实拳击2第一次加载) lol手游登录显示100004(lol手游登录显示无法使用此区域账号登录) linux 真实山地越野4X4拉力赛下载 真实山地越野 linux下光盘的挂载使用 使用镜像恢复系统也需小心后门陷阱 Linux下Shell的使用 央视影音平板版(大屏幕使用)下载 模拟巴士真实驾驶 明日方舟源石碎片怎么使用-源石碎片的使用方法介绍 Linux查看硬盘使用情况 使用linux下的TC进行服务器流量控制 英雄联盟手游引燃怎么用-英雄联盟手游引燃技能及使用方法介绍 ubuntulinux下如何使用终端命令行上网? ubuntu下修改hosts使用xmarks 如何在Linux下面使用自动备份 windows7虚拟光驱安装和使用方法 u km2025王者战神真实 对马岛之鬼鞠躬(对马岛之鬼真实存在吗) 刺客信条奥德赛使用刀剑时加30(奥德赛使用刀剑时伤害对刺客有用吗) 刺客信条大革命使用幻影之剑(刺客信条大革命如何使用幻影之剑) 第五人格的卡片爱哭鬼的点金值钱吗(第五人格爱哭鬼使用技巧) 多面怎么使用(多面软件怎么用) 第五人格爱哭鬼使用技巧(第五人格爱哭鬼打法) 动物园之星蓝图是什么(动物园之星蓝图使用教程) 地表法则先遣者陷阱怎么使用(地表法则攻略) 崩坏三中琪亚娜的真实身份(崩坏三中琪亚娜的真实身份是什么) 动物园之星蓝图怎么用(动物园之星蓝图使用教程) 单程票使用须知(单程票的定义以及常见类型) 第三次世界大战的主要武器(我不知道第三次世界大战会使用什么武器) 地痞街区怎么使用技能(地痞街区道具指南) 崩坏3亚空的征服者有什么用(崩坏3亚娜真实身份) 第五人格幸运儿的真实身份(第五人格幸运儿原型) 第五人格小丑怎么玩小丑使用技巧(第五人格小丑怎么开局就有技能) 除雾功能怎么使用(除雾功能怎么使用方法) 不思议的皇冠道具(不思议的皇冠道具怎么使用) 电钻使用简单吗(使用电钻技巧) 第五人格杰克的真面目是什么样子(第五人格杰克的真实面目) 创世理想乡怎么使用魔法(创世理想乡怎么释放魔法) 冬日计划燃料怎么使用(冬日计划怎么生火) 地表法则先遣者陷阱怎么使用(地表法则有手机版吗) 戴森球计划建造(戴森球计划建造原材料使用仓库) 穿刺枪的使用方法(穿刺枪是一次性的吗) 超级机器人大战v小帮手奈因每关都可以使用吗(超级机器人大战v特殊关卡) 戴森球计划传送带怎么连接制造台(戴森球计划传送带使用) 穿越火线中的ac(穿越火线中的ak射击怎么使用) 超级机器人大战v小帮手奈因每关都可以使用吗(机器人大战v特殊技能解锁) 博人传萌黄是什么忍(博人传萌黄第几集使用木遁) 冰血暴这是一个真实的故事(冰血暴是真实的吗) 地铁跑酷怎么使用兑换码(地铁跑酷怎么兑换码修改器) 崩坏三中的琪亚娜卡斯兰娜的真实身份是(崩坏3琪亚娜与卡莲) 第五人格画家技能介绍(第五人格画家真实强度) 第五人格小丑怎么玩小丑使用技巧(第五人格小丑新手教程) 尝试完成特定领域任务需使用的技巧(尝试完成特定领域任务需使用的技巧有) 彩虹六号充值商店目前无法使用(彩虹六号充值商店不可用) 单程票使用须知(单程票是啥) 第五人格盲女使用技巧(第五人格盲女玩法技巧) 刺客信条奥德赛长矛怎么用(刺客信条奥德赛长矛使用技巧) 冬日计划怎么使用武器(冬日计划新手攻略) 第五人格爱哭鬼带什么技能(第五人格爱哭鬼使用技巧) 穿越火线手游涂鸦(穿越火线手游涂鸦罐怎么使用)

最新游戏更多

最新软件更多

  • 玩家推荐
  • 游戏攻略

北航游戏网 Copyright(C) 2008- 600435.cn All Rights Reserved!

苏ICP备17061231号| 免责声明