映射文件的zfs内存使用情况

时间:2016-01-08 02:36:41

标签: solaris mmap zfs

我在https://blogs.oracle.com/roch/entry/does_zfs_really_use_more

上阅读了以下内容
  

有一个特殊的工作负载确实导致ZFS消耗更多   内存:将(使用系统调用)写入也是mmaped的页面。 ZFS   不使用常规分页系统来管理传递的数据   通过读写系统调用。但是,mmaped I / O是紧密的   绑定到虚拟内存子系统仍然经历了常规   分页代码。所以系统调用写入mmaped页面意味着我们将继续   至少在我们设法得到之前,相关数据的2份副本   数据到磁盘。我们不期望通常使用大型的负载类型   公羊数量

这究竟是什么意思?这是否意味着zfs将“无用地”双重缓存由内存映射文件支持的任何内存区域?或者“使用系统调用”是指使用我不熟悉的其他一些写作方法来编写。 如果是这样,我最好将这样编写的文件的工作目录保存在ufs分区上吗?

1 个答案:

答案 0 :(得分:2)

  

这是否意味着zfs将“无用地”双重缓存由内存映射文件支持的任何内存区域?

希望,没有。

  

或者“使用系统调用”是指使用我不熟悉的其他一些写法来写作。

该方法只是常规的低级write(fd, buf, nbytes)系统调用和类似方法而不是内存映射文件的设计支持:使用指针读取/写入内存,使用文件数据作为字节访问文件内容数组或其他什么。

  

如果是这样,我最好将这样写入的文件的工作目录保存在ufs分区上吗?

不,除非使用系统调用写入的内存映射文件总和到RAM工作负载的很大一部分,这是不太可能发生的。

PS:请注意,这个博客已有近十年的历史了。从那时起,实施可能已经发生了变化。