This content has been marked as final. Show 1 reply
These are thoughts and postulations (and guesses) ... some gathered from recent postings.
The zfs_arc_cache will be sized between zfs_arc_min and zfs_arc_max as Solaris sees best fit especially with regards to the needs of other processes.
However if some pages in the cache have not been accessed recently, and he cache is above its target size, then they will be discarded until the cache reaches its target size.
Now as pointed out by http://www.cuddletech.com/blog/pivot/entry.php?id=979 .... the target is adaptive.
Now I suspect the target size will go up if you have just copied a number of large files, or done a full backup ( as will the amount in the zfs cache), however if will probably do down if theses files are not accessed in a while.
In Solaris 10 I dont think the target was implemented and the cache would grow up to 85% of physical ram if left unchecked. And this could cause problems for applications checking the amount of free real/virtual memory before startup; or even if they attempted to grab too much memory too quickly which might cause a crunch shortage and application startup fail.
I think strategy changed with Solaris 11 to attempt to address some of these issues (for all I know it may be backported to a later solaris 10 update).
And if you know things about your system better than the cache optimizer ... and you may because you may be able to extrapolate whereas it is essentially only able to interpolate ... then you may wish to tune zfs_arc_min
Please note this post is not authorative .... consider it more as thoughts and postulations and it may contain errors and misguidance.