Linux 系统缓存机制学习
2024-10-18 23:31:36
前言:本文为参考他人的文章,是一篇学习记录型博客。理解linux的系统缓存机制有助于理解elasticsearch实时更新的原理。
一、缓存机制
为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁盘。
缓存机制优点:减少系统调用次数,降低CPU上下文切换和磁盘访问频率。
二、查看缓冲区及内存使用情况
第一行Mem: 表示物理内存统计
total:used:
free:
shared:
buffers:
第二行-/+ buffers/cache:表示物理内存的缓存统计
used2:free2:
第三行Swap: Swap意思是交换分区,,是从硬盘中划分出的一个分区。当物理内存不够用的时候,内核就会释放缓存区(buffers/cache)里一些长时间不用的程序,然后将这些程序临时放到Swap中,也就是说如果物理内存和缓存区内存不够用的时候,才会用到Swap。
三、buffers 和 cached的区别
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 内核在保证系统能正常使用物理内存和数据量读写情况下来分配缓冲区大小。buffers用来缓存metadata及pages,可以理解为系统缓存。cached是用来给文件做缓存,可以理解为数据块缓存。 那就是说:buffers是用来存储,目录里面有什么内容,权限等等。 而cached直接用来记忆我们打开的文件,如果你想知道他是不是真的生效,你可以试一下,先后执行两次命令#man X ,你就可以明显的感觉到第二次的开打的速度快很多。
最新文章
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(一)
- Javascript中构造函数与new命令
- python成长之路【第三篇】:函数
- javascript的原型与继承(2)
- Ubuntu14.04 Server amd64 配置 Apache+MySQL+Django
- Introduction to Project Management(II)
- imx6 KEY_ROW4 power output high fail
- sql(join on 和where的执行顺序)
- oracle 导入导出数据
- 完美逆向百度手机助手5.0底部菜单栏 - Android Tabhost 点击动画
- Android 高手进阶,自己定义圆形进度条
- Office转HTML
- 小tips:用java模拟小球做抛物线运动
- 深入浅出数据结构C语言版(20)——快速排序
- 创建一个servlet
- Spring IOC知识点一网打尽!
- 2111: [ZJOI2010]Perm 排列计数
- 数据库中的null用法
- vue-router两种模式的区别
- OpenStack镜像服务基本操作