【Linux内核】页高速缓存和页回写

文章目录

      • 概述
      • flusher线程

概述

1.页高速缓存主要是用来减少磁盘IO的操作,把磁盘的数据缓存到物理内存中

2.页高速缓存是由内存中的物理页面组成,其内容对应磁盘上的物理块

3.Linux使用回写技术,程序写操作直接写到缓存,然后回写进程周期性的将它们写到磁盘

4.在缓存回收方面,Linux使用的双链策略,维护两个链表,一个活跃,一个非活跃,处于活跃链表上的页表不会被换出,非活跃链表上的会被换出

5.在2.4版本之前,一个磁盘块可以同时驻留到页高速缓存和缓冲区高速缓存,这样重复缓存浪费资源,如今只有一个页高速缓存了

flusher线程

1.在下面三种情况时,缓存会更新到磁盘:

  • 空闲内存不够了
  • 缓存超时
  • 用户使用sync和fsync系统调用的时候

2.膝上型计算机模式是一种页回写策略,也就是flusher会对准磁盘旋转的时机进行回写,其余传统方式一致,很多linux系统当计算机使用电池时会使用这种策略来省电

3.flusher不仅仅是一个线程,不同的flusher线程处理不同的设备队列,每个磁盘一个线程操作,降低了饥饿风险

你可能感兴趣的:(【Linux内核】页高速缓存和页回写)