首页 > 其他分享 >BufferCache的简单理解

BufferCache的简单理解

时间:2023-07-24 18:00:10浏览次数:27  
标签:缓存 Buffer Cache 回收 echo 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,于是产生杀进程的现象。

标签:缓存,Buffer,Cache,回收,echo,BufferCache,内存,简单,理解
From: https://www.cnblogs.com/forwards/p/17577930.html

相关文章

  • 深入理解 Serverless 计算的并发度
    作者:西流背景2019年Berkeley预测Serverless将取代Serverful计算[1],成为云计算的计算新范式。Serverless为应用程序开发提供了一种全新的系统架构,其凭借着弹性伸缩省事省心,按需付费更低成本、聚焦业务降低OPS这三大核心价值,将开发人员从繁重的手动资源管理和性能成本优......
  • 深入理解 Serverless 计算的并发度
    作者:西流背景2019年Berkeley预测Serverless将取代Serverful计算[1],成为云计算的计算新范式。Serverless为应用程序开发提供了一种全新的系统架构,其凭借着弹性伸缩省事省心,按需付费更低成本、聚焦业务降低OPS这三大核心价值,将开发人员从繁重的手动资源管理和性能成......
  • 简单理解:C语言中的分支和循环语句
    一、C语言中的循环语句while循环while(//条件语句){//语句块}执行的逻辑:在执行到while()这一行时,会根据条件语句的真和假来判断是否继续进行循环,若条件语句为真则继续循环,如果条件为假则结束循环。dowhile循环do{//语句块}while(条件语句);执行的逻辑:和while类似,但是要注......
  • RUBY实践—数据库简单操作
    开发环境:Ruby:1.9.1Rails:2.3.5Rake:0.8.7Rack:1.0.1Mysql:5.0.9Ruby-mysql:mysql-2.8.1-x86-mswinIDE:RubyMine2.0.1 数据库准备:database:dbdevelopmentuser:crystalpassword:crystal 一、创建Ruby项目RorTest 二、修改database.yml这里只启用development环境数据库,修改配置文......
  • 【转载】vSAN其实很简单-更换磁盘可以是件美丽的事情
    vSAN其实很简单-更换磁盘可以是件美丽的事情-连载(1)  日常的IT维护中,磁盘故障是最常见的硬件故障之一了。根据vSAN的设计,vSAN在检测到磁盘故障后会自动在其他可用节点上重建数据(具体机制以后再细说)。我曾经遇到过有些用户的磁盘已经坏了几个月却没有发觉出来,因为vSAN已经默默的......
  • DC_4靶机的简单复现
    DC_41.nmapkali的IP:192.168.40.148扫描同网段的其他IP:nmap-sP192.168.40.148/24扫描结果:先IP后mac地址再通过查看DC_4的mac地址,可得DC_4靶机的IP:192.168.40.163全盘扫描:nmap-A192.168.40.163-p1-65535-oNnmap.A-A:该选项表示使用"Aggressive"扫......
  • 自旋锁的简单实现
    实现自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。自旋锁是互斥锁的一种实现,Java实现如下方所示。publicclassSpinLock{privateAtomicReference<Thread>o......
  • 深入理解 SAP Fiori Front-end Server 试读版
    从本质上说,SAPFioriFront-endServer(在SAP官方文档里经常缩写为SAPFES)是ABAP应用服务器的一个Addon.Addon是SAPABAP一个特有的概念,是一种专门设计用于扩展SAPABAP系统基本功能的软件组件。大家可以把Addon理解成逻辑上具有关联关系的,聚合在一起,共同实现一个......
  • 老杜 JavaWeb 讲解(十三) ——JSP简单了解
    (十四)JSP相关视频:35-JSP原理深度解析36-JSP的各种基础语法37-JSP的输出语法第一个JSP程序在WEB-INF目录之外创建一个index.jsp文件,然后这个文件中没有任何内容。将上面的项目部署之后,启动服务器,打开浏览器,访问以下地址:http://localhost:8080/jsp/index.jsp展现......
  • 如何理解Spring的IOC和DI
    学习过Spring框架的人一定都会听过Spring的IoC(控制反转)、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IOC、DI这两个概念是模糊不清的,是很难理解的。今天我就谈谈我对IOC和DI的理解,希望对大家有帮助。1、IOC与DI介绍IOC是InversionofControl的缩写,翻译成中文是......