页缓存(PageCache)和预读机制(readahead )

页缓存(PageCache)和预读机制(readahead )

页缓存(PageCache)是操作系统(OS)对文件的缓存,用于加速对文件的读写。

page 是内存管理分配的基本单位, Page Cache 由多个 page 构成,page 在操作系统中通常为 4KB 大小,而 Page Cache 的大小则为 4KB 的整数倍。

一般来说,程序对文件进行顺序读写的速度几乎接近于内存的读写速度,主要原因就是由于OS使用PageCache机制和预读机制对读写访问操作进行了性能优化,将一部分的内存用作PageCache,大大减少磁盘 I/O 次数,加快了数据的访问。

在这里插入图片描述

对于数据的写入,OS会先写入至PageCache内,随后通过异步的方式由pdflush内核线程将PageCache内的数据刷盘至物理磁盘上。

对于数据的读取,由于操作系统为基于 Page Cache 的读缓存机制提供预读机制(readahead),如果一次读取文件时未命中PageCache,OS从物理磁盘上读取文件的同时,会顺序对其他相邻块的数据文件进行预读取,然后缓存到PageCache。

假设用户线程请求读取磁盘上文件 A 的 offset 为 0-3KB 范围内的数据,由于磁盘的基本读写单位为 page(4KB),于是操作系统至少会读 0-4KB 的内容,这恰好可以在一个 page 中装下,但是操作系统出于局部性原理,会选择将相邻磁盘块 offset [4KB,8KB)、[8KB,12KB) 以及 [12KB,16KB) 都加载到PageCache,于是额外在PageCache中申请了 3 个 page用于缓存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/630692.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Leetcode每日一题】 分治 - 排序数组(难度⭐⭐)(60)

1. 题目解析 题目链接:912. 排序数组 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 算法思路: 快速排序作为一种经典的排序算法,其核心思想在于通过“分而治之”的策略&#xff…

hbase-2.2.7分布式搭建

一、下载上传解压 1.在官网或者云镜像网站下载jar包 华为云镜像站:Index of apache-local/hbase/2.2.7 2.上传到linux并解压 tar -zxvf hbase-2.2.7-bin.tar.gz -C /usr/locol/soft 二、配置环境变量 1. vim /etc/profile export HBASE_HOME/usr/local/soft/h…

线性代数---行列式的性质

1. 行列式的行与列(按原顺序)互换

Ansible在macOS上的安装部署

一、安装 Ansible(使用 Homebrew) 安装 Homebrew(如果尚未安装): /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"使用 Homebrew 安装 Ansible&#x…

OpenHarmony网络请求库-httpclient

简介 HTTP是现代应用程序通过网络交换数据和媒体的的主要方式。httpclient是OpenHarmony 里一个高效执行的HTTP客户端,使用它可使您的内容加载更快,并节省您的流量。httpclient以人们耳熟能详的OKHTTP为基础,整合android-async-http&#xf…

【图像分割】光流生成标签(matlab)

文章目录 1. 框架2. opticalFlow_label3. 光流 1. 框架 2. opticalFlow_label close all; clear; clc; % 使用光流进行标签的生成 %% 视频帧的读取 npy_data readNPY(train.npy);%% 提取标签的坐标 first_label squeeze(npy_data(2,1,:,:)); h fspecial("gaussian&quo…

基于Ultrascale+系列GTY收发器64b/66b编码方式的数据传输(二)——Sync Gearbox使用及上板测试

基于Ultrascale系列GTY收发器64b/66b编码方式的数据传输(一)——Async Gearbox使用及上板测试 一文介绍了64B/66B编码方式及如何使用GTY IP核提供的Async Gearbox进行64B/66B数据传输,由于Async Gearbox方式下无法使用buffer bypass方式提供的…

阿里云服务器上配置Docker 以及常用命令讲解

目录 一、认识docer二、在阿里云服务器上配置Docker三、底层原理4、常用命令(1)Docker中常见镜像命令(2)Docker中常见容器命令(3)日志查看命令(4)进入容器的命令与拷贝命令 一、认识…

【三维Dvhop定位】基于麻雀搜索算法的多通信半径和跳距加权的三维Dvhop定位算法【Matlab代码#81】

文章目录 【可更换其他算法,获取资源请见文章第6节:资源获取】1. Dvhop定位算法2. 麻雀搜索算法3. 多通信半径和跳距加权策略3.1 多通信半径策略3.2 跳距加权策略 4. 部分代码展示5. 仿真结果展示6. 资源获取 【可更换其他算法,获取资源请见文…

网络爬虫软件学习

1 什么是爬虫软件 爬虫软件,也称为网络爬虫或网络蜘蛛,是一种自动抓取万维网信息的程序或脚本。它基于一定的规则,自动地访问网页并抓取需要的信息。爬虫软件可以应用于大规模数据采集和分析,广泛应用于舆情监测、品牌竞争分析、…

函数 基础知识

本笔记为观看 50 函数-函数的定义_哔哩哔哩_bilibili的学习笔记 1 函数概述 作用:将一段经常使用的代码封装起来,减少重复代码一个较大的程序,一般分为若干个程序块,每个块实现特定的功能。 2 函数的定义 eg: int max(int a,int b); {retu…

CSS:filter(滤镜)属性

用途 可以用于img标签,div标签等 图像,背景,边框的调整 常用属性 1. 灰度 grayscale(),默认是0,100%就是黑白 2. blux 给图像设置高斯模糊的程度,radius值设定高斯模糊的程序,表示像素点…