影响文件系统性能的分页参数及相关缓存机制解析
1. 启用优先级分页时的虚拟内存系统行为
当启用优先级分页时,虚拟内存系统会呈现不同的行为。以相同的测试程序对文件系统进行随机读取,会引发系统分页,页面扫描器会积极参与页面管理,且此时扫描器优先释放文件页面。从执行文件和匿名内存列中的零值可明显看出,扫描器优先选择文件页面。fpi 和 fpf 列的活动表明,文件页面被读入,同时页面扫描器释放等量页面以腾出空间供更多读取操作。
2. 影响文件系统性能的分页参数
- 扫描速率与文件系统活动 :启用优先级分页时,文件系统扫描速率会变高。因为页面扫描器需跳过进程私有内存和可执行文件,所以要扫描更多页面才能找到可释放的文件页面。在大量使用文件系统的系统中,常出现高扫描速率,因此不能将其作为判断内存短缺的因素。若使用 Solaris 7 系统,可通过 memstat 命令查看是否向交换设备分页,若有则表明内存短缺。
- 扫描器参数调整 :若文件系统活动频繁,扫描器参数可能不足,从而限制文件系统性能。为弥补这一问题,需设置扫描器参数 fastscan 和 maxpgio,使扫描器能以足够高的速率扫描,跟上文件系统的节奏。
- fastscan 参数 :默认情况下,扫描器受 fastscan 参数限制,该参数反映扫描器每秒可扫描的页面数。默认每秒扫描四分之一的内存,上限为 64 兆字节每秒。当内存处于 lotsfree 状态时,扫描器以 fastscan 的一半速率运行,即每秒 32 兆字节。若每三个物理内存页面中只有一个是文件