`
longxj
  • 浏览: 101763 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

read ahead memory

阅读更多

linux为了提高I/O的性能,尽量减少I/O请求的发送,主要是为了提高进程顺序读取文件的效率,提供了read ahead的机制,如果linux判断一个进程在顺序读取文件,那么它会提前读取进程所需文件的数据,放在缓存中。

判断的标准是:

1.如果进程是第一次读取文件,那么检查进程是不是读取文件的第一个page

2.读取的文件page是不是上次读取page的下一个

满足上面两个条件的进程,linux会为其创建两个window,每个window包含几个page。一个被称为current window;另一个被称为ahead window。current window是进程正在读取的文件page 数据(也可能包含部分ahead数据),ahead window是预读取的文件数据。当current window里的page数据都被进程读取后,ahead window就成为了current window,linux将会申请下一个ahead window。

当进程I/O操作不满足前面的条件时,read ahead便会暂时失效,等条件再次被满足时,read ahead机制就可以重新被激活。

活动图参见<understanding the linux kernel>-647

分享到:
评论

相关推荐

    微软内部资料-SQL性能优化2

    By caching virtual blocks, the cache manager can reduce disk I/O and provide intelligent read ahead. Represented by Memory:Cache Resident bytes. For more information, see also… Inside Windows 2000...

    Windows Internals-Fourth Edition.chm

    Read Ahead and Write Behind Conclusion Chapter 12. File Systems Windows File System Formats File System Driver Architecture Troubleshooting File System Problems NTFS Design Goals and ...

    Key-Value存储引擎ForestDB.zip

    关键特性:Key 和 Value 可以是任意二进制值 应用可以定制比较函数来支持自定义的 Key 顺序可通过顺序号来获取 Value 值或者是 Key 的磁盘偏移量Write-Ahead Logging (WAL) and its in-memory index are used to ...

    Beginning Swift Programming.pdf

    The results is simpler, cleaner, more expressive code with automatic memory management, functional programming patterns, and more, including built-in features that make Swift apps faster, scalable, ...

    s3c6410_oneNand_Controller.doc

    9. 包括PIPELINE READ/WRITE AHEAD COMMAND,允许预读和预写操作,提高数据传输效率。 10. 特殊的控制器使用情况,如Boot with OneNand Controller,允许从OneNand设备启动系统。 在寄存器描述部分,文档列出了...

    存储系统-缓存-磁盘学习

    为了提高磁盘性能,现代硬盘引入了多种技术,如预读取(read ahead)、写后读(write-behind caching)和磁盘碎片整理等。此外,固态硬盘(SSD)利用闪存技术,虽然较传统机械硬盘速度更快,但在某些工作负载下仍需...

    09年考研专业可最新资料

    - **EEPROM**:Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器,允许数据的电擦除和重写。 #### 1.5 寻址方式 - 指令中的操作数地址可以通过不同的方式确定,如立即数寻址、直接...

    Linux-kernel-file-IO.rar_Linux IO_linux 文件读写_linux读写文件_文件io_简单内核

    4. **预读和延迟写**:为了提高性能,Linux内核采用了预读(read-ahead)和延迟写(write-behind)策略。预读会在当前读取位置之前读取额外的数据,而延迟写则会将数据暂存,等到一定条件满足时(如缓冲区满或特定...

    Windows Kernel Internals - Cache Manager-计算机科学

    Probert, Ph.D.Windows Kernel DevelopmentMicrosoft Corporation:copyright: Microsoft Corporation 2What is ... Access methods for pages of file data onopened files• Automatic asynchronous read ahead• Aut

    The Art of Assembly Language Programming

    The Memory Subsystem 3.1.3 - The I/O Subsystem 3.2 - System Timing 3.2.1 - The System Clock 3.2.2 - Memory Access and the System Clock 3.2.3 - Wait States 3.2.4 - Cache Memory ...

    mysql 5.6 新特性-innodb

    12. **Read-Ahead**: - 优化了预读策略,提高了数据读取效率。 13. **Undo Log Tablespace**: - 改进了回滚日志的管理方式,提高了事务处理效率。 ##### 功能增强 1. **Online DDL**: - 实现了在线模式的...

    专题23:Mysql 面试题(卷王专供+ 史上最全 + 2023面试必备)-V106-from-尼恩Java面试宝典.pdf

    - 哈希索引: 在某些存储引擎如MEMORY或HASH中可用,适用于查找固定长度键值的情况。 - 全文索引: 用于全文搜索功能。 - **InnoDB支持的索引**: - 聚集索引: 数据行和索引存储在一起。 - 辅助索引: 非主键索引,...

    mysql面试题

    4. **预读(Read-Ahead)**:通过预测可能访问的数据页并提前加载到缓冲池中,减少未来访问的延迟。 ### MySQL中VARCHAR与CHAR的区别 1. **VARCHAR与CHAR的区别**: - **CHAR**:固定长度类型,例如`CHAR(10)`...

    SYBASE安装、调优、备份参考手册

    - 调整与I/O相关的配置参数,如`sp_configure 'read ahead pages'`等,以适应不同的工作负载需求。 - **dbcc调优部分** - 使用`dbcc`命令对数据库进行诊断和性能调整,例如检查缓存命中率、I/O等待时间等。 **3....

    Greenplum的安装(体验版centos+Greenplum)

    设置磁盘读取提前量(read-ahead),以提高磁盘I/O效率: ```bash /sbin/blockdev --setra 16384 /dev/vda ``` **6. 配置hosts文件** 在`/etc/hosts`文件中添加主机映射关系,方便后续操作。例如,选择`203`作为...

    高中英语必修三词组大全.doc

    5. **plenty of**: 表示“大量”或“充足”,如,“She has plenty of books to read.”(她有很多书可以读。) 6. **be satisfied with**: 意为“对…感到满意”,搭配使用“to one’s satisfaction”则表示...

    INFORMIX数据库性能检查命令 详细解答

    **8.7 Read Ahead** **检查点:** - **Read Ahead** - 监控预读操作。 **方法:** - 使用`onstat -b`命令查看预读操作统计。 **示例输出:** - `onstat -b` - 显示预读操作统计信息。 **8.8 Most Resource SQL*...

Global site tag (gtag.js) - Google Analytics