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
分享到:
相关推荐
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...
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 可以是任意二进制值 应用可以定制比较函数来支持自定义的 Key 顺序可通过顺序号来获取 Value 值或者是 Key 的磁盘偏移量Write-Ahead Logging (WAL) and its in-memory index are used to ...
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, ...
9. 包括PIPELINE READ/WRITE AHEAD COMMAND,允许预读和预写操作,提高数据传输效率。 10. 特殊的控制器使用情况,如Boot with OneNand Controller,允许从OneNand设备启动系统。 在寄存器描述部分,文档列出了...
为了提高磁盘性能,现代硬盘引入了多种技术,如预读取(read ahead)、写后读(write-behind caching)和磁盘碎片整理等。此外,固态硬盘(SSD)利用闪存技术,虽然较传统机械硬盘速度更快,但在某些工作负载下仍需...
- **EEPROM**:Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器,允许数据的电擦除和重写。 #### 1.5 寻址方式 - 指令中的操作数地址可以通过不同的方式确定,如立即数寻址、直接...
4. **预读和延迟写**:为了提高性能,Linux内核采用了预读(read-ahead)和延迟写(write-behind)策略。预读会在当前读取位置之前读取额外的数据,而延迟写则会将数据暂存,等到一定条件满足时(如缓冲区满或特定...
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 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 ...
12. **Read-Ahead**: - 优化了预读策略,提高了数据读取效率。 13. **Undo Log Tablespace**: - 改进了回滚日志的管理方式,提高了事务处理效率。 ##### 功能增强 1. **Online DDL**: - 实现了在线模式的...
- 哈希索引: 在某些存储引擎如MEMORY或HASH中可用,适用于查找固定长度键值的情况。 - 全文索引: 用于全文搜索功能。 - **InnoDB支持的索引**: - 聚集索引: 数据行和索引存储在一起。 - 辅助索引: 非主键索引,...
4. **预读(Read-Ahead)**:通过预测可能访问的数据页并提前加载到缓冲池中,减少未来访问的延迟。 ### MySQL中VARCHAR与CHAR的区别 1. **VARCHAR与CHAR的区别**: - **CHAR**:固定长度类型,例如`CHAR(10)`...
- 调整与I/O相关的配置参数,如`sp_configure 'read ahead pages'`等,以适应不同的工作负载需求。 - **dbcc调优部分** - 使用`dbcc`命令对数据库进行诊断和性能调整,例如检查缓存命中率、I/O等待时间等。 **3....
设置磁盘读取提前量(read-ahead),以提高磁盘I/O效率: ```bash /sbin/blockdev --setra 16384 /dev/vda ``` **6. 配置hosts文件** 在`/etc/hosts`文件中添加主机映射关系,方便后续操作。例如,选择`203`作为...
5. **plenty of**: 表示“大量”或“充足”,如,“She has plenty of books to read.”(她有很多书可以读。) 6. **be satisfied with**: 意为“对…感到满意”,搭配使用“to one’s satisfaction”则表示...
**8.7 Read Ahead** **检查点:** - **Read Ahead** - 监控预读操作。 **方法:** - 使用`onstat -b`命令查看预读操作统计。 **示例输出:** - `onstat -b` - 显示预读操作统计信息。 **8.8 Most Resource SQL*...