Oracle® Solaris 11.2 可调参数参考手册

退出打印视图

更新时间: 2014 年 12 月
 
 

fsflush

系统守护进程 fsflush 会定期运行来执行三个主要任务:

  1. 每次调用时,fsflush 都会将存在时间超过指定期限的脏文件系统页刷新到磁盘。

  2. 每次调用时,fsflush 都会检查内存的一部分,并促使已修改的页写入它们的后备存储。如果页已修改并且不符合以下某个条件,则会被写入:

    • 页是内核页

    • 页是空闲的

    • 页被锁定

    • 页与某个交换设备相关联

    • 页当前参与了某个 I/O 操作

    实际结果是将刷新文件中通过 mmap 以写权限映射的页以及已实际更改的页。

    页将刷新到后备存储中,但是保持附加到使用它们的进程。这样,如果页自刷新以来未进行修改,可以通过避免在声明页之前延迟将页写入后备存储,因而当系统在内存不足情况下运行时,这将可以简化页回收。

  3. fsflush 将文件系统元数据写入到磁盘。写入是在每个第 n 次调用时执行的,其中 n 是根据各种配置变量计算得出的。有关详细信息,请参见tune_t_fsflushrautoup

以下功能是可配置的:

  • 调用频率 (tune_t_fsflushr)

  • 是否执行内存扫描 (dopageflush)

  • 是否进行文件系统数据刷新 (doiflush)

  • 进行文件系统数据刷新的频率 (autoup)

对于大多数系统,内存扫描和文件系统元数据同步是 fsflush 的主要活动。根据系统使用情况,内存扫描可能只使用很少 CPU 时间,也可能会占用太多的 CPU 时间。