BufferCache的简单理解
对于磁盘和文件系统来讲
Buffer对应磁盘数据的缓存,用于读或写。
Cache对应文件数据的页缓存,用于读或写。
Buffer可以用来聚合多个写操作,Cache则可以理解为预读操作,文件系统通过这两种方式提升磁盘IO性能。
对于网络协议来讲
只有Buffer的概念,该Buffer对应数据的收发缓冲区。
对于cpu来讲
Cache的概念更多,主要用于CPU与内存的读写。其存在于CPU硬件中。
Buffer,Cache回收方式(网络协议部分不会参与该过程)
- 自动回收,内存将要耗尽时触发
比如到达高水位/proc/sys/vm/min_free_kbytes最小剩余大小 - 手动回收
/proc/sys/vm/drop_caches
echo 1 清楚page cache
echo 2 回收slab分配器中的对象
echo 3 包含1和2
Buffer, Cache回收的代价
Buffer写缓存不能直接删除,必须落盘数据一致,方可删除,因此清缓存时可能会存在大量IO,降低系统性能。
tmpfs、map、shmget中的缓存以及dirty pages 和 slab 中不可回收缓存,无法被自动回收。
交换分区
vm.swappiness控制页面交换的倾向程度
Buffer,Cache 较高通常属于正常现象,可能存在大量的文件读写,导致占用大量内存,但此时还未触发高水位回收机制,当应用程序申请大量内存时,可能会直接触发了OOM,于是产生杀进程的现象。
BufferCache的简单理解的更多相关文章
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...
- [转]简单理解Socket
简单理解Socket 转自 http://www.cnblogs.com/dolphinX/p/3460545.html 题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公 ...
- Js 职责链模式 简单理解
js 职责链模式 的简单理解.大叔的代码太高深了,不好理解. function Handler(s) { this.successor = s || null; this.handle = funct ...
- Deep learning:四十六(DropConnect简单理解)
和maxout(maxout简单理解)一样,DropConnect也是在ICML2013上发表的,同样也是为了提高Deep Network的泛化能力的,两者都号称是对Dropout(Dropout简单 ...
- Deep learning:四十二(Denoise Autoencoder简单理解)
前言: 当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Be ...
- 简单理解dropout
dropout是CNN(卷积神经网络)中的一个trick,能防止过拟合. 关于dropout的详细内容,还是看论文原文好了: Hinton, G. E., et al. (2012). "I ...
- 我们为之奋斗过的C#-----C#的一个简单理解
我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET ...
- 简单理解ECMAScript2015中的箭头函数新特性
箭头函数(Arrow functions),是ECMAScript2015中新加的特性,它的产生,主要有以下两个原因:一是使得函数表达式(匿名函数)有更简洁的语法,二是它拥有词法作用域的this值,也 ...
- 简单理解JavaScript闭包
很多关于JS的书籍例如<JavaScript权威指南>或者<高程>都把闭包解释的晦涩难懂,萌新们是怎么也看不懂啊!不过别怕,今天我就用很简单的方式给大家讲解下到底什么是闭包.这 ...
随机推荐
- 【深度学习】基础--NumPy
因为深度学习会应用到我们大学时候学习的数学知识---线性代数.(矩阵当年想起来还是挺有意思的,有考研的经历都有感觉) 而在计算机里面如何展示矩阵的计算和应用,就需要运用到NumPy,是Python的一 ...
- Django Admin后台管理:高效开发与实践
title: Django Admin后台管理:高效开发与实践 date: 2024/5/8 14:24:15 updated: 2024/5/8 14:24:15 categories: 后端开发 ...
- k8s-nginx实战部署1
目录 yaml 资源清单 run_deploy.sh .gitlab-ci.yml yaml 资源清单 deploy.yaml apiVersion: v1 kind: ConfigMap metad ...
- 在python中安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))
所以最终的 解决办法:pip install keras -i http://pypi.douban.com/simple --trusted-host pypi.douban.com(其中的kera ...
- WEB服务与NGINX(9)-NGINX作为下载服务器的相关配置
目录 1. NGINX的目录索引功能 2. NGINX的限速功能 2.1 限制下载速度 2.2 限制单位时间内产生的http请求数 2.3 限制客户端同一时刻的并发连接数 1. NGINX的目录索引功 ...
- python教程6.6-发送邮件smtplib
实现步骤: Python对SMTP⽀持有 smtplib 和 email 两个模块, email 负责构造邮件, smtplib 负责发送邮件,它对smtp协议进⾏了简单的封装. 简单代码示例: 发送 ...
- cesium教程2-加载显示地形地图
上面地形数据,是调用cesium官方的地图服务,需要先注册cesium账户,配置cesium的账户token才行 1.在线地形服务的示例代码如下 <!DOCTYPE html> <h ...
- Linux(五):Linux的文档编辑器Vi
什么是Vi 我们使用Windows的时候,记录或者存储信息,一般都是txt文本编辑,记事本,word文档等等,进行编程的时候,使用idea,eclipse等等,但是在Linux中,就比较直接了,不论你 ...
- 适用于任何设备的屏幕共享应用程序 – Mirroring360
Mirroring360 适用于 Windows.Mac.iOS.Android 和 Chromebook 设备的屏幕镜像和屏幕共享,非常适合商务和教育! 屏幕共享应用程序可以帮助增强业务专业人员,讲 ...
- .NET 代理模式(二) 动态代理-DispatchProxy
前言 我们都知道,在.NET中实现动态代理AOP有多种方案,也有很多框架支持,但大多框架的实现原理都是通过Emit配合Activator一起使用,从IL级别上实现动态代理. 其实在.NET中有一个更为 ...