1 / 5
文档名称:

减少zfs文件系统arc缓存的方法.doc

格式:doc   大小:39KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

减少zfs文件系统arc缓存的方法.doc

上传人:文库旗舰店 2019/11/24 文件大小:39 KB

下载得到文件列表

减少zfs文件系统arc缓存的方法.doc

文档介绍

文档介绍:减少ZFS文件系统ARC缓存的方法编写:,ZFS文件系统简介可见附录。ZFS使用在内存中建立缓存的方式来提升性能,这种做法在海量数据时尤为有效。ZFS的缓存使用ARC(AdjustableReplacementCache)算法,它是基于IBM的Megiddo和Modha提出的ARC淘汰算法演化而来的。所以这个缓存通常被称为ARC缓存。Solaris系统中有两个内核参数来限制ARC缓存的大小:zfs_arc_min:确定ARC缓存的最小大小,设置单位为字节。默认64MB。zfs_arc_max:确定ARC缓存的最大大小,设置单位为字节。默认在内存少于4GB的系统上为物理内存的75%,在内存大于4GB的系统上为物理内存减去1GB。这两个内核参数都是使用容量单位来设定的,并不能根据物理内存的大小来自动调节,,使用百分比来设定:user_reserve_hint_pct:设置留给应用程序的物理内存百分比。查阅Oracle官方文档,并没有给出详细的说明,经试验,默认值应为0,且zfs_arc_min、zfs_arc_max参数依然有效,即user_reserve_hint_pct参数确定的ARC缓存占用量低于zfs_arc_min时,取zfs_arc_min的容量;高于zfs_arc_max时,取zfs_arc_max的容量。。:echo“::memstat”|mdb-k在一台16GB的机器上,进行大量IO操作后(充分建立缓存),运行以上命令,如下图:可以看到“ZFSFileData”,使用51%的物理内存。ARC缓存是弹性的,其设计思想是尽量多地使用空闲内存来加速(其实WindowsVista之后的版本也使用类似的思想),当有程序申请内存时,释放ARC缓存来满足程序的需求。这样的机制看上去没有什么问题,而且在大型机及海量数据的情况下的确是一个很好的解决方案。但是这都是为高性能机器准备的,在我们公司使用的四路、两路服务器上也没什么问题,但是到了E32这类低成本方案的机器(4GB内存,奔腾CPU,性能不及我们的笔记本)上就可能导致内存不足。原因是:应用程序申请较大内存时,ARC缓存来不及释放,导致应用程序申请内存失败而出现错误。如果是Oracle数据库申请内存失败,则会导致数据库退出;如果是系统核心进程申请内存失败,则会导致系统重启或卡死。,仅需在4GB内存的低成本机器上进行配置。上文已经讲了相应的内核参数,所以在不同的系统上可以进行不同的设置,以下方法均已验证有效。()通过设置zfs_arc_max内核参数来限制ARC缓存使用量,修改/etc/system文件,在最后加入新的一行,内容如下:setzfs:zfs_arc_max=100000000含义是将ARC缓存的最大内存使用量限制在100MB(数字不是很精确)。4GB内存的机器建议使用这个限制值,其他内存的机器可以不设置,或放宽到数百兆,或几GB,视