zfs_arc_max设置以后没有生效
superjunjie:
从Solaris 10 8/07 release开始以后的版本可以直接在/etc/system中设置该参数,对于Solaris早期版本,因为不支持该参数设置,所以只有通过mdb的命令来设置,使用mdb设置以后立即生效,不需要reboot;
# mdb -kw
Loading modules: [ unix krtld genunix specfs dtrace ufs ip sctp usba fctl nca lofs zfs random nfs fcip crypto ptm sppp ]
> arc::print -a p c c_max
ffffffffc02eb8f0 p = -0t541200384 (???)
ffffffffc02eb8f8 c = -0t1082597376 (???)
ffffffffc02eb908 c_max = -0t1082597376 (???)
> ffffffffc02eb8f0/Z 0x20000000
arc+0x30: 0x1dfbdf000 = 0x20000000
> ffffffffc02eb8f8/Z 0x40000000
arc+0x38: 0x3bf78e000 = 0x40000000
> ffffffffc02eb908/Z 0x40000000
arc+0x48: 0x3bf78e000 = 0x40000000
> arc::print -a p c c_max
ffffffffc02eb8f0 p = 0t536870912 (???)
ffffffffc02eb8f8 c = 0t1073741824 (???)
ffffffffc02eb908 c_max = 0t1073741824 (???)
> $q
结论:
由于咱们的系统是Solaris 10比较早的版本(Solaris 10 6/06 ),所以只有通过mdb来设置Kernel占用的最大值,以保障应用程序的正常运行,经过测试,发现修改该参数以后,error=12, 没有足够的空间该错误没有重现,问题得到有效解决
|