关系经济人类预测化学自然
投稿投诉
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产

什么是PageCache?为什么需要PageCache?

4月4日 夜如影投稿
  应用程序产生PageCache的逻辑示意图
  红色的地方就是PageCache,很明显,PageCache是内核管理的内存,也就是说,它属于内核不属于用户。
  如何观察PageCache?在Linux上直接查看PageCache的方式有很多,包括procmeminfo、free、procvmstat命令等,它们的内容其实是一致的。拿procmeminfo命令举例看一下:
  catprocmeminfo
  。。。
  Buffers:1224kB
  Cached:111472kB
  SwapCached:36364kB
  Active:6224232kB
  Inactive:979432kB
  Active(anon):6173036kB
  Inactive(anon):927932kB
  Active(file):51196kB
  Inactive(file):51500kB
  。。。
  Shmem:10000kB
  。。。
  SReclaimable:43532kB
  根据上面的数据,你可以简单得出这样的公式(等式两边之和都是112696KB):
  BuffersCachedSwapCachedActive(file)Inactive(file)ShmemSwapCached
  那么等式两边的内容就是我们平时说的PageCache。请注意你没有看错,两边都有SwapCached,之所以要把它放在等式里,就是说它也是PageCache的一部分。等式右边这些项把Buffers和Cached做了一下细分,分为了Active(file),Inactive(file)和Shmem,因为Buffers更加依赖于内核实现,在不同内核版本中它的含义可能有些不一致,而等式右边和应用程序的关系更加直接,所以我们从等式右边来分析。
  在PageCache中,Active(file)Inactive(file)是Filebackedpage(与文件对应的内存页),是你最需要关注的部分。因为你平时用的mmap()内存映射方式和bufferedIO来消耗的内存就属于这部分,最重要的是,这部分在真实的生产环境上也最容易产生问题,我们在接下来的课程案例篇会重点分析它。
  而SwapCached是在打开了Swap分区后,把Inactive(anon)Active(anon)这两项里的匿名页给交换到磁盘(swapout),然后再读入到内存(swapin)后分配的内存。由于读入到内存后原来的SwapFile还在,所以SwapCached也可以认为是Filebackedpage,即属于PageCache。这样做的目的也是为了减少IO。
  通过下面简单的示意图明白SwapCached是怎么产生的:
  SwapCached只在Swap分区打开的情况下才会有,而我建议你在生产环境中关闭Swap分区,因为Swap过程产生的IO会很容易引起性能抖动。
  PageCache中的Shmem是指匿名共享映射这种方式分配的内存(free命令中shared这一项),比如tmpfs(临时文件系统),这部分在真实的生产环境中产生的问题比较少。
  free命令中的buffcache究竟是指什么呢?
  free命令也是通过解析procmeminfo得出这些统计数据的,这些都可以通过free工具的源码来找到。free命令的源码是开源,你可以去看下procfs里的free。c文件,源码是最直接的理解方式,它会加深你对free命令的理解。
  freek
  totalusedfreesharedbuffcacheavailabl
  Mem:792658072779604923921000015622843068
  Swap:82247643807487844016
  通过procfs源码里面的procsysinfo。c这个文件,你可以发现buffcache包括下面这几项:
  buffcacheBuffersCachedSReclaimable
  通过前面的数据我们也可以验证这个公式:122411147243532的和是156228。
  free命令中的buffcache是由Buffers、Cached和SReclaimable这三项组成的,它强调的是内存的可回收性,也就是说,可以被回收的内存会统计在这一项。
  SReclaimable是指可以被回收的内核内存,包括dentry和inode等。
  掌握了PageCache具体由哪些部分构成之后,在它引发一些问题时,你就能够知道需要去观察什么。比如说,应用本身消耗内存(RSS)不多的情况下,整个系统的内存使用率还是很高,那不妨去排查下是不是Shmem(共享内存)消耗了太多内存导致的。
  为什么需要PageCache?
  第一张图你其实已经可以直观地看到,标准IO和内存映射会先把数据写入到PageCache,这样做会通过减少IO次数来提升读写效率。
  看一个具体的例子。首先,我们来生成一个1G大小的新文件,然后把PageCache清空,确保文件内容不在内存中,以此来比较第一次读文件和第二次读文件耗时的差异。具体的流程如下。先生成一个1G的文件:
  ddifdevzeroofhometestdd。outbs4096count((1024256))
  2。清空PageCache,需要先执行一下sync来将脏页同步到磁盘再去dropcache。
  syncecho3procsysvmdropcaches
  3。第一次读取文件的耗时如下:
  timecathometestdd。outdevnull
  real0m5。733s
  user0m0。003s
  sys0m0。213s
  再次读取文件的耗时如下:
  timecathometestdd。outdevnull
  real0m0。132s
  user0m0。001s
  sys0m0。130s
  第二次读取文件的耗时远小于第一次的耗时,这是因为第一次是从磁盘来读取的内容,磁盘IO是比较耗时的,而第二次读取的时候由于文件内容已经在第一次读取时被读到内存了,所以是直接从内存读取的数据,内存相比磁盘速度是快很多的。这就是PageCache存在的意义:减少IO,提升应用的IO速度。
投诉 评论 转载

沈阳首套房贷利率下限降至3。8全国已有超30城利率下限至4以3月28日,辽宁沈阳市房产局与沈阳市自然资源局联合印发通知明确,二季度起新发放首套住房个人住房贷款利率下限由3。9降至3。8。有机构统计,截至目前,已有超30城调整首套房贷利率……秋天穿针织马甲这么选择与搭配!保暖时髦有气质,快收藏寒冷的秋天,大家的穿衣搭配就很容易变得厚重,也无法展现出个人的魅力。但我们也不要因此放弃打扮,只要你多了解当下的流行趋势,给自己买一些好看的衣服去搭配,就很容易展现出魅力。……OPPOFindN2Flip将于2月15日面向全球发布IT之家2月11日消息,在12月15日的发布会上,OPPOFindN2Flip竖向折叠屏手机正式在中国市场发布,而OPPO现宣布将于2月15日在伦敦举行新品发布会,届时将面向国……在经开,感受产业的春天一年春作首,万事勤为先。日前,经开君在高铁新城看到,安静的办公室里,哒哒哒的打字声和不停响起的电话声尤为清晰,忙碌的生产车间内,流转不停的生产线和紧张有序的工作人员步调协同,先……女篮世预赛综述法国爆冷负于尼日利亚仍出线美国力克比利时北京时间2月11日晚至12日上午,2022年女篮世预赛第二轮先赛三场,中国队8464大胜马里队迎来两连胜提前出线,法国队2分爆冷负于尼日利亚队但仍然获得出线权,美国队力克比利时……山东钢铁焕新一个钢铁企业的新旧动能转换样本本报记者赵彬彬近日,国家统计局公布的数据显示,2022年1月份至8月份钢铁行业的累计利润总额仅为410。5亿元,比去年同期减少了2917亿元,同比下降87。7。行业低谷期……从刘强东马化腾到李彦宏,科技大佬为何频频开炮?一佳之言反思潮席卷科技互联网行业。前有京东集团董事长刘强东内部痛批部分高管,称拿PPT和假大空词汇忽悠自己的人就是骗子,紧接着马化腾在员工大会上表示留给腾讯某些业务的时间不多了、……拥抱AI等新技术,巨人网络AI游戏是公司未来重点布局方向(报告出品方分析师:中信建投杨艾莉)1、概况:征途IP奠定基础,股权结构清晰稳定巨人网络成立于2004年,由史玉柱创立,主营游戏研发与运营,目前拥有征途系列与《球球大作战……还找借口吗?周琦王哲林连续打脸杜峰!用人偏颇言语前后不一中国男篮在亚洲杯铩羽而归后,批评声音就一直没有断过。中国男篮之所以取得了亚洲杯历史最差成绩,其中一大原因确实是因为伤病。但杜峰在亚洲杯期间的用人安排,让广大中国球迷们难以看懂。……冲就完事模拟器评测冲掉所有污渍和烦恼冲就完事了有时不得不承认,中国的语言文化,真的是博大精深。单就这款游戏的名字来说,如果直接按照英文原意翻译为《强力清洗模拟器》,恐怕就没有多少人会关注到它。但改名叫《冲就……许昕刘诗雯身居高位,马龙历史最佳,里约奥运一代为何如此出众?北京时间的12月10日,在山东威海乒超联赛的赛场上,马龙这位老将继续为球迷们贡献了精彩的比赛,在男团半决赛的对抗中,他参与了单打的赛事,虽然双打不敌山东魏桥,但是马龙在单打比赛……什么是PageCache?为什么需要PageCache?应用程序产生PageCache的逻辑示意图红色的地方就是PageCache,很明显,PageCache是内核管理的内存,也就是说,它属于内核不属于用户。如何观察Pa……
说说文艺范心情短语非字型车位的停车方法建筑垃圾的处理原则我们真的允许孩子犯错吗新赛季的S级辅助,输出不低赛娜,开团压机器人,却因难度无人玩叶童现身友人生日宴!年仅59岁已满头白发,直面镜头接受自然老南宁楼市连跌,房企出奇招买房免费坐地铁十年,销售称不便透露成这几款一千多元的手机,用个一两年不是问题,都是千元5G神机哪些药物治疗性病效果比较好共享单车之我见酒后造句用酒后造句大全长三角美妆突围
抽烟喝酒的好处有哪些微信只用来聊天通视频,这些黑科技小程序没。。。公司的债务整体转让后如何承担?医保缴多久能享受终身医疗保险?热闻聚热点网 幼儿园中班健康教案翻盖式蹲便器怎么样备孕提前多久准备瘸腿的岩羊中国人造板工业加快转型的论文科普下四招化解考场紧张情绪考场出现紧张情绪怎么办贪心的交配,30秒就可完成硬拖12小时而丧命,究竟为啥?颐和园热传聚热点网

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找菏泽德阳山西湖州宝鸡上海茂名内江三亚信阳长春北海西安安徽黄石烟台沧州湛江肇庆鹤壁六安韶关成都钦州