跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 11.1 可调参数参考手册 Oracle Solaris 11.1 Information Library (简体中文) |
本节介绍了 fsflush 和相关的可调参数。
系统守护进程 fsflush 会定期运行来执行三个主要任务:
每次调用时,fsflush 都会将存在时间超过指定期限的脏文件系统页刷新到磁盘。
每次调用时,fsflush 都会检查内存的一部分,并促使已修改的页写入它们的后备存储。如果页已修改并且不符合以下某个条件,则会被写入:
页是内核页
页是空闲的
页被锁定
页与某个交换设备相关联
页当前参与了某个 I/O 操作
实际结果是将刷新文件中通过 mmap 以写权限映射的页以及已实际更改的页。
页将刷新到后备存储中,但是保持附加到使用它们的进程。这样,如果页自刷新以来未进行修改,可以通过避免在声明页之前延迟将页写入后备存储,因而当系统在内存不足情况下运行时,这将可以简化页回收。
fsflush 将文件系统元数据写入到磁盘。写入是在每个第 n 次调用时执行的,其中 n 是根据各种配置变量计算得出的。有关详细信息,请参见tune_t_fsflushr和autoup。
以下功能是可配置的:
调用频率 (tune_t_fsflushr)
是否执行内存扫描 (dopageflush)
是否进行文件系统数据刷新 (doiflush)
进行文件系统数据刷新的频率 (autoup)
对于大多数系统,内存扫描和文件系统元数据同步是 fsflush 的主要活动。根据系统使用情况,内存扫描可能只使用很少 CPU 时间,也可能会占用太多的 CPU 时间。
带符号整数
1
1 - MAXINT
秒
否
如果该值小于或等于零,则该值将重置为 1 并显示一条警告消息。此检查仅在引导时执行。
请参见 autoup 参数。
不稳定
与 tune_t_flushr 配合使用时,autoup 控制每次调用中查找脏页时要检查的内存量以及文件系统同步操作的频率。
autoup 的值还用于控制是否从空闲表写出缓冲区。如果缓冲区标有 B_DELWRI 标志(它标识已更改的文件内容页),只要该缓冲区位于列表中的时间已超过 autoup 秒,就将写出该缓冲区。增大 autoup 的值会将缓冲区在内存中保留更长时间。
带符号整数
30
1 - MAXINT
秒
否
如果 autoup 小于或等于零,则会将其重置为 30 并显示一条警告消息。此检查仅在引导时执行。
autoup 应该是 tune_t_fsflushr 的整数倍。autoup 应该至少是 tune_t_fsflushr 的值的 6 倍。如果不是这样,每次调用 fsflush 时都会扫描大量内存。
要使得在 dopageflush 为非零值时对内存进行检查,总系统页数乘以 tune_t_fsflushr 应该大于或等于 autoup。
下面是更改 autoup 、tune_t_fsflushr 或这两者的几种可能情况:
系统具有大量内存-在这种情况下,增大 autoup 可以减少每次调用 fsflush 时扫描的内存量。
系统具有最低内存需求-同时增大 autoup 和 tune_t_fsflushr 可以减少执行的扫描数。要保持 autoup / tune_t_fsflushr 的当前比率,也应增大 autoup。
具有大量瞬态文件的系统(例如,邮件服务器或软件生成计算机)-如果创建了大量文件,然后将其删除,fsflush 可能会将这些文件的数据页写入磁盘,但这是不必要的。
不稳定
控制在 fsflush 调用期间是否检查内存以查找已修改的页。每次调用 fsflush 时,都将确定系统中的物理内存页数。该数值可能已经因为某个动态重新配置操作而改变。每次调用在扫描时将使用以下算法:总页数 x tune_t_fsflushr / autoup 页数
带符号整数
1(启用)
0(禁用)或 1(启用)
切换(开/关)
是
无
如果系统页扫描程序极少运行(由 vmstat 输出的 sr 列中的 0 值予以指示)。
不稳定
控制在 fsflush 调用期间是否要执行文件系统元数据同步。此同步是在 fsflush 的每个第 N 次调用时执行的,其中 N = (autoup / tune_t_fsflushr)。因为此算法是整数除法,代码会进行检查以查看其迭代计数器的值是否大于或等于 N,所以如果 tune_t_f flushr 大于 autoup,则每次调用 sf ush 时都将执行同步。请注意,只会在调用 fsflush 时对 N 计算一次。随后对 tune_t_fsflushr 或 autoup 的更改对同步操作的频率没有影响。
带符号整数
1(启用)
0(禁用)或 1(启用)
切换(开/关)
是
无
一段期间内频繁修改文件且刷新导致的负载干扰了系统行为时。
如果系统重新引导能够更好地保留在某个 TMPFS 文件系统(例如 /tmp)中,则那些文件的存在及其状态一致性也不再会造成问题。通过使用 mount -noatime 选项,可以减少系统上的 inode 通信。此选项使得在访问文件时不进行 inode 更新。
对于参与实时处理的系统,您可能希望禁用此选项并使用显式应用程序文件同步来获得一致性。
不稳定