自从升级到Solaris 11以来,尽管具有30GB RAM,但我的ARC大小始终以119MB为目标。什么?为什么?


9

在发布Solaris 11之前,我在Solaris 11 Express上运行了NAS / SAN盒。该包装盒是带有X2700的HP X1600。总共12个1TB 1TB 7200 SATA磁盘,12个300GB 10k SAS磁盘在单独的zpool中。总内存为30GB。提供的服务包括CIFS,NFS和iSCSI。

一切都很好,我有一个ZFS内存使用情况图,如下所示:

相当健康的Arc大小约为23GB-利用可用内存进行缓存。

但是,当它发布时,我随后升级到了Solaris 11。现在,我的图形如下所示:

的部分输出arc_summary.pl是:

System Memory:
     Physical RAM:  30701 MB
     Free Memory :  26719 MB
     LotsFree:      479 MB

ZFS Tunables (/etc/system):

ARC Size:
     Current Size:             915 MB (arcsize)
     Target Size (Adaptive):   119 MB (c)
     Min Size (Hard Limit):    64 MB (zfs_arc_min)
     Max Size (Hard Limit):    29677 MB (zfs_arc_max)

它的目标是119MB,而现在为915MB。它有30GB可用空间。为什么?他们有改变吗?

编辑

澄清arc_summary.pl一下,是本·罗克伍德(Ben Rockwood),而产生上述统计信息的相关行是:

my $mru_size = ${Kstat}->{zfs}->{0}->{arcstats}->{p};
my $target_size = ${Kstat}->{zfs}->{0}->{arcstats}->{c};
my $arc_min_size = ${Kstat}->{zfs}->{0}->{arcstats}->{c_min};
my $arc_max_size = ${Kstat}->{zfs}->{0}->{arcstats}->{c_max};
my $arc_size = ${Kstat}->{zfs}->{0}->{arcstats}->{size};

Kstat条目在那里,我只是从中得到奇数。

编辑2

我刚刚使用来重新测量了圆弧大小arc_summary.pl-我已经使用以下方法验证了这些数字kstat

System Memory:
     Physical RAM:  30701 MB
     Free Memory :  26697 MB
     LotsFree:      479 MB

ZFS Tunables (/etc/system):

ARC Size:
     Current Size:             744 MB (arcsize)
     Target Size (Adaptive):   119 MB (c)
     Min Size (Hard Limit):    64 MB (zfs_arc_min)
     Max Size (Hard Limit):    29677 MB (zfs_arc_max)

让我印象深刻的是,目标大小为119MB。从图中可以看出,arc_summary.pl自从安装Solaris 11以来,它的目标是完全相同的值(根据cacti,为124.91M,根据-认为差异仅为1024/1000舍入问题,为119M )。看起来内核正在竭尽全力将目标大小更改为任何其他大小。当前的大小随着系统(大型)需求与目标大小的变化而波动,并且看来平衡在700到1000MB之间。

因此,现在的问题更加明确了-为什么Solaris 11会将我的ARC目标大小硬设置为119MB,如何更改它?我应该提高最小尺寸以查看会发生什么吗?

我将结束输出停留kstat -n arcstatshttp://pastebin.com/WHPimhfg

编辑3

好吧,现在很奇怪。我知道flibflob提到有一个补丁可以解决此问题。我尚未应用此补丁(仍在解决内部支持问题),并且尚未应用任何其他软件更新。

上周四,盒子坠毁了。如,完全停止对所有内容的响应。当我重新启动它时,它又恢复正常,但是这是我的图形现在的样子。

看来已经解决了问题。

现在这是适当的土地。我真的不知道发生了什么。:(

Answers:


4

不幸的是,我无法解决您的问题,但这是一些背景信息:

  • ARC目标大小似乎不是一个固定值。我在Solaris 11计算机上遇到相同的问题,并且每次重新启动后,在某些时候目标大小似乎都锁定在〜100到〜500MB之间的值。

  • http://mail.opensolaris.org/pipermail/zfs-discuss/2012-January/050655.html中所述,至少有3个人面临着同一问题。

  • 在“我的Oracle支持”(https://support.oracle.com)上也有一个打开的错误报告(7111576 )。如果您的服务器具有有效的支持合同,则应提交服务请求并参考该错误。截至目前,任何错误修正似乎仍在进行中...

除此之外,您无能为力。如果尚未升级zpool / zfs版本,则可以尝试引导至旧的Solaris 11 Express引导环境并运行该环境,直到Oracle最终决定发布可解决该问题的SRU。

编辑:既然上面已经讨论了性能下降的问题:一切都取决于您在做什么。自从升级到Solaris 11 11/11以来,我在Solaris 11 NFS共享上看到了可怕的延迟。但是,与您的系统相比,我的主轴相对较少,并且严重依赖ARC和L2ARC缓存来正常工作(请注意,该问题还导致L2ARC无法增长到任何合理的大小)。这当然不是误解统计数据的问题。

即使您可能不太依赖ARC / L2ARC,也可以通过使用dd多次读取一个大文件(通常适合您的RAM)来重现它。您可能会注意到,第一次读取文件实际上比连续读取同一文件要快(由于ARC的大小荒谬,并且有无数的缓存逐出)。

编辑:我现在设法从Oracle收到了IDR补丁,该补丁可以解决此问题。如果系统受支持,则应要求提供CR 7111576的IDR修补程序。该修补程序适用于带有SRU3的Solaris 11 11/11。


我得到了支持,但是我在一家大型公司工作,所以谁知道呢?
增长

1

他们改变了kstats。

Oracle Solaris 11从zfs:0:arcstats中删除了以下统计信息:

  • evict_l2_cached
  • evict_l2_eligible
  • evict_l2_ineligible
  • evict_skip
  • hdr_size
  • l2_free_on_write
  • l2_size recycle_miss

并将以下内容添加到zfs:0:arcstats:

  • buf_size
  • meta_limit
  • meta_max
  • meta_used

因此,这基本上可能是脚本的问题。


这是一个有趣的观点,但是我认为我没有使用任何这些指标来报告这些数字。参见编辑。
2012年

那些人的确还在。考虑到这一点,这看起来很奇怪。您看到任何形式的性能下降吗?
juwi 2012年

我不能说我有。我应该测量一下。
增长

如果这不是您正在查看的内容的错误,并且您确实有一个奇怪的地方,请注意,您可以在实时系统上即时更改这些值,也可以永久使用/ etc / system。
Nex7 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.