When running "echo ::memstat | mdb -k" I get this result:

Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                    2349789              9178   14%
ZFS File Data             4251652             16608   25%
Anon                      8101424             31646   48%
Exec and libs               51583               201    0%
Page cache                1018684              3979    6%
Free (cachelist)             5049                19    0%
Free (freelist)            992659              3877    6%

Total                    16770840             65511
Physical                 16323297             63762

Everything I read online says that the the file system caching layer (ARC) in ZFS is "ZFS File Data". What does "Page cache" stand for? Why is it so large then?

I'm sorry if this is a basic question, but no google search I tried turned up any reasonable results.


Even when installed with a ZFS root disk, Solaris systems still make use of other filesystems that are not ZFS. For instance, tmpfs will use the VM page cache.

  • How about NFS - will it also be cached in this "Page Cache"? – shlomoid May 26 '11 at 11:24
  • Yes. AFAIK, there is no special cache area for data so it must use the page cache offered by the virtual memory subsystem. – Giovanni Tirloni May 26 '11 at 18:44
  • That must explain it, since we're using NFS shares for home directories. Thanks! – shlomoid May 31 '11 at 9:48
  • This is actually not 100% accurate - mmap for files in ZFS still uses the page cache, and will thus result in double buffering (ARC + page cache). – Iwan Aucamp Sep 20 '13 at 10:50

The Page cache is the file system cache for non ZFS file systems. It's size will be as big as the system thinks it needs to be.


The page cache is for non ZFS file system (i.e. for example UFS) caching. I suspect you are not 100% ZFS.

  • It's strange, since this is Solaris 11, and the default for everything is ZFS. How can I tell / find what is non-ZFS? – shlomoid May 17 '11 at 11:35
  • @shlomoid: Your question says it's Solaris 10 ? – user9517 May 17 '11 at 13:57
  • Solaris 11 is not out yet So I guess you mean Solaris 11 Express. I just had a look at the OpenSolaris source code cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/… and it seems the Page Cache metric is simply counting pages not identified as anything else (kind of "none of the above") so these pages might contain non file cache data after all ... What says df -k ? – jlliagre May 17 '11 at 15:27
  • Yes, I mean Solaris 11 Express. df -k just lists the mounts and the free space - it doesn't say anything about what filesystem is mounted. What should I be looking for there? – shlomoid May 18 '11 at 8:15
  • df -k list mounts and you'll very likely find some of them non ZFS based but still likely to use page cache. To know what file system type is used, I should have suggested mount -p. – jlliagre May 18 '11 at 8:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.