服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

我如何防止ntfs-3g使用饿死我的ZFS ARC的内存?

我有一台基于Debian GNU / Linux 7(wheezy)的运行OpenMediaVault 2.1.18(Stone刻录机)的HP Microserver。 前几天,我需要从一个USB驱动器复制大量的文件,用NTFS格式化。 我连接它,装上它,开始复制,然后完成。 一天之后,我发现它几乎没有复制任何东西,而且我的NAS性能也一塌糊涂。 调查发现,页面缓冲区和缓冲区caching现在占用了超过3/4的系统内存(一起使用的时间通常less于10%),ZFS ARC现在被挤压到剩余的内存中(小于正常大小的1/4 )。 当我意识到出了什么问题的时候,我停止了拷贝,卸载并拔掉了驱动器,很快caching恢复到了正常的大小,然后ARC开始恢复到正常的水平。 所以,如果将来需要做更多的直接复制,我该如何防止挂载ntfs驱动器,导致大量的内存消耗,使得我所需要的内存不足ZFS ARC? 注意:正如shodanshok所 build议的 ,我尝试运行echo 3 > /proc/sys/vm/drop_caches (根据man 5 proc “free pagecache,dentries and inodes”),但是这也冲刷了我的ARC(除了需要caching的内存L2ARC标题)。 因此,我的系统有很多可用的内存,但是由于事情只能在ARC或L2ARC中caching,所以我的系统花了很多时间来驱动硬盘来重新填充ARC,而不是一个理想的状态。 在这张图片中,你可以看到5号开始时的ZFS饥饿,当我开始我的NTFS拷贝时,在6号早期卸载NTFS驱动器时,事情恢复正常,最后ARC被清除(并重build)在7日下午使用drop_caches。