free -m中的cache是什么?为什么会占用那么高
cac55 2024-09-21 13:31 44 浏览 0 评论
环境
- 红帽企业 Linux(所有版本)
- JBoss 企业应用程序平台 (EAP) - 所有版本
Issue
- 什么是cache在free -m输出以及为什么内存利用率高cache?
- 如何通过分析 Heap 创建新的 JBoss 服务器实例所需的内存容量freeJBoss 中的命令输出,如果已经有一个 JBoss 实例在运行?
- 为什么缓存使用了大量内存?
- 缓存中经常充分利用物理内存
解决
"free -m" 命令的输出结果中的 Cache 是什么?
它表示当前被 Page chche 占用的内存容量,即 RAM 容量。Page cache 是被放到 RAM 上的曾经读或写操作所用到的文件或实际数据的副本。
拥有缓存机制有什么好处?当执行读或者写操作的时候,内核首先将所要的数据放到 RAM。
读取操作: 去磁盘找到数据 --> 把数据从磁盘存到 RAM --> 执行读操作
写操作: - 去磁盘找到数据 --> 把数据从磁盘存到 RAM --> 执行写操作 --> 把修改的数据复制到磁盘
- 不论是访问外部存储还是本地存储,总是慢于直接访问 RAM,因为磁盘读取速度慢于 RAM 的读取速度。如果某文件持续地被读取或者修改,访问磁盘是一种资源消耗。在 Cache 的帮助下,文件会在 RAM 保存一段时间,这样就不用每次都去磁盘读或者修改数据。经过一段时间后,Cache 上的数据会被同步到磁盘。
- 把文件存到 RAM 里大大提高了处理速度,因为与从本地磁盘访问文件相比,它减少了大量的文件访问时间。这也间接地提高了计算机的整体性能。
下面的示例演示了缓存如何提高整体性能:
[root@sourcedb ~]# cat >aaa #写入文件aaa
adfa
adfa
adfa
^C
[root@sourcedb ~]#
[root@sourcedb ~]# cat aaa #查看内容
adfa
adfa
adfa
[root@sourcedb ~]# sync
[root@sourcedb ~]# echo 3 > /proc/sys/vm/drop_caches #清空cache
如果您系统的 IO 操作频繁,我们不建议您使用这条命令。请不要在生产环境中使用以下命令。
[root@sourcedb ~]# time cat aaa
adfa
adfa
adfa
real 0m0.018s #实际为0.018s
user 0m0.000s
sys 0m0.006s
[root@sourcedb ~]# time cat aaa
adfa
adfa
adfa
real 0m0.001s #实际为0.001s 从缓存中读取速度明显大于0.018
user 0m0.000s
sys 0m0.001s
因此,只要有空闲内存,内核将始终尝试利用它来将所需文件保存为缓存。
如果没有可用 RAM 并且新进程需要可用 RAM,会发生什么情况? 当一个新的进程需要 RAM 的空页时,内核会检查 cache 是否有空页,并且把 cache 里的文件同步到本地磁盘,从而收回空页,释放 RAM 给新的进程
有关“free -m”命令输出的详细说明:-
# free -m
total used free shared buffers cached
Mem: 3753 3455 298 0 144 664
-/+ buffers/cache: 2645 1107 <<-- Actual Free RAM
Swap: 4095 75 4020
- 上述实例中,RAM 内存总量为 3753 MB。其中 3455 MB 被占用,298 MB 为剩余容量。
- 在 "free -m" 输出结果中,cache 和 buffers 也被算作实际占用的 RAM 容量,但这并不符合事实。
- 在被占用的 3455 MB 内存中,一部分被用作 cache 或 buffer。如上所述,当没有空余的 RAM 容量分配给新进程时,就可以回收 cache 和 buffer 的内存。所以我们可以把 "Cache" 和 "buffer" 看作空余 RAM。因此可以根据以下公式计算实际剩余 RAM 的容量。
- Actual Free RAM = "free" + "buffers" + "cached" = 298 + 144 + 664 = 1106 在 "free -m" 命令输出的第二行的 "free" 值约为 1107。
为什么 cache 要占用那么多的内存?
- 对于一个 Linux 虚拟内存管理器来说这是正常现象。为了理解为什么在正常情况下cache内存那么高,您必须先了解linux是如何处理 I/O的。当某用户读或者写文件时,它实际上是修改主内存的副本。内核会在磁盘里创建一个副本,必要时会对其修改。被这些副本所占用的内存就叫做 cached memory。
- 当用户进程发起读或者写操作时,就会消耗 cache 内存。内核会查找用户正在操作的文件副本,如果没有的话,它会在 cache 里分配出一个新的页面,并且从磁盘里读出相应的数据填充它。如果用户只是读这个文件,这一页会被标注成 "clean" cache 页。然而,只要用户写该文件,这一页会被标注成 "dirty"。出现在 ps 里被称做 pdflush 的内核线程会定期被唤醒,并将所有标记为 dirty 的页面复制到磁盘,然后把它们标记为 clean。注意该页面只能被重新标记为 clean,由于之后可能会对该文件做进一步的 IO 操作,该页面被重新写回时并不会被释放。
- 当内核需要内存时,cache 页才会被释放。我们没有必要把 cache 页转换成空页,因为从磁盘读取 cache 页可以加快 IO 速率,而且释放一个 cache 页和分配一个空页一样简单,此外一个空页对于系统执行也没有任何作用。如果 cache 页占满了内存,当下一次内核需要内存时,它会简单地逐出最近最少使用的 clean 页并重新利用它们。
相关推荐
- Protel电路设计常用设计编辑器案例2——创建元件
-
#大有学问#今天介绍一下Protel常用设计编辑器的电气连接工具栏。单击主工具栏上的工具按钮或选择【查看】|【工具栏】|【配线工具栏】菜单命令可以关闭或打开【电气连接(WiringTools)】工具...
- Protel调整元器件的位置(1)——移动和对齐元器件
-
今天介绍调整元器件位置的方法。首先介绍移动和对齐元器件的方法。在绘制电路原理图时,放置完了的电路图可能位置不太合适,需要进行移动。原理图中的所有对象都可以被移动,移动方法相似。对于元器件的移动来说又分...
- 电路仿真软件详谈(八),proteus电路仿真软件和protel的区别
-
电路仿真软件是常用工具类型之一,proteus更是电路仿真软件中的佼佼者。但是对于proteus电路仿真软件和protel,二者总是被弄混淆。例如,protel是电路仿真软件吗?proteus电路仿真...
- PCB文件转换生产文件Protel 99SE_pcb格式转换
-
为何要将PCB文件转换为GERBER文件和钻孔数据?因为GERBER文件是一种国际标准的光绘格式文件,它包含RS-274-D和RS-274-X两种格式,其中RS-274-D称为基本GERBER格式,并...
- PCB设计项目教程 -PDF_pcb设计作品
-
PCB设计项目教程》及相关PCB设计教材详细介绍:一、核心教材《PCB设计项目教程》该教材由徐凯、王威担任主编,于2017年由北京理工大学出版社出版。其采用“项目导向、任务驱动”的教学模式,...
- 最受欢迎的pcb设计软件Protel99se到底怎么样?
-
Protel99se是一款国内非常实用且流行的设计行业的pcb设计软件,其由pcb原理图设计和多层板电路设计两大功能组成,其最大的特点是好获取,在网上可以随便的找到,且Protel99se软件适用于w...
- 人人都是网络雇佣兵,一种基于路由器的ddos平台设计思路
-
本文灵感来自于三个方面优酷路由宝,迅雷宝这种路由器流量兑现方式Anonymous匿名者的ddos方式传统木马ddos方案先说路由宝迅雷宝,这种以用户网络为节点的CDN网络中,会传输大量的流量,我上月优...
- 接口性能测试工具Locust介绍_接口和性能的测试要点
-
接口性能测试工具其实挺多的,小型有apache的ab工具,大型的有Jmeter、Locust......这里要介绍的是Locust,相对于Jmeter进行了比较完善的封装,Locust可以就显的更自...
- 华硕笔记本电脑安装系统实战心得体会
-
故障:某某的电脑叫人安装系统至一半就蓝屏死机.拿来给我安装,发现光驱无效,不能用光盘安装.电脑启动蓝屏.解决方法:用了半天时间安装也出现类似问题.后来考虑用U盘来装.1.首先制作U盘系统,把U盘资...
- dos命令systeminfo图文教程,显示操作系统配置信息msinfo32
-
大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频。今天我们学习systeminfo命令,该工具显示本地或远程机器(包括服务包级别)的操作系统配置的信息,...
- 玩家展示现代硬件上运行的MS-DOS 拥有令人难以置信的向后兼容性
-
一位YouTuber展示了在现代计算机硬件上直接运行古老的MS-DOS操作系统和经典游戏的能力。这段视频由YouTuberInkbox发布,向观众展示了如何启动古老的、前Windows...
- 比微PE还干净还强大,带网络:USBOS V3.0超级PE装机工具20221031
-
期待已久的USBOSV3.0超级PE装机工具20221031又和大家见面了,用过的朋友都知道他的确很强大,对于新旧电脑的支持很好,目前为止还没有电脑不支持的,包括苹果PC。很多朋友还在用诸如大白菜、...
- 大童保险李晓婧:保险的本位是风险管理应在四方面进行建设
-
经济观察网记者姜鑫5月17日,大童保险服务宣布升级了风险管理模式,推出DOSM(DemandOriented,SolutionModel)需求导向型解决方案5.0版本。新解决方案从原有“六位...
- DOS常用命令及简介_dos常用命令大全及用法
-
DOS是英文DiskOperatingSystem的缩写,意思是“磁盘操作系统”。我是在95年开始学的电脑,当时学校的机房里,还没有一台WINDOWS操作系统的电脑,当时都是用DOS、UC-DOS...
- Windows 忘记开机密码?不用任何工具,1招轻松破解
-
出现忘记Windows密码的情况,概率有多大?对此,小电只能回答忘记开机密码的情况,说来就来,没有规律,也不会提前告诉你一声~而忘记Windows开机密码的时候,很多朋友都会想起可以使用u盘启动盘来破...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)