On 5/11/06, Roch Bourbonnais - Performance Engineering <[EMAIL PROTECTED]> wrote:
Certainly something we'll have to tackle. How about a zpool memstat (or zpool -m iostat) variation that would report at least freemem and the amount evictable cached data ? Would that work for you ? -r
Suppose I have a system with 32 GB of RAM and 50 GB of ZFS file systems running a fairly light load - a single JVM that uses about one GB of RAM. The first time that backups run, the free memory as reported by vmstat will drop to nearly zero. For all practical purposes, it will not return to having a significant amount of free RAM until the system reboots. This breaks the capacity planning tools that I use across hundreds of machines. The retraining of sysadmins, DBA's and others just seems like my punishment for finally getting %iowait == 0. A stable interface is needed to indicate how much memory is in active use. Yes, active can be fuzzy, but "I backed that 500 MB log file up 2 days ago and it is sitting in the zfs buffer cache" is certainly not active. While adding the ability to say the amount of RAM availalble is the sum of the amount indicated by vmstat and the amount used by the "zfs memstat" would be workable, it makes me feel like I am in for another change in the next update to zfs, the next overhaul of nfs, etc. Perhaps what would be really useful (does this coincide with memory set work?) is to have a vmstat option that says how much memory is being used by classes of memory usage. It may be useful to see something like: $ vmstat -b 5 memtype resident hot warm cold kernel 2345 120 540 1685 usr 7823 1034 970 5819 nfsbuf 3434 0 0 3434 zfsbuf 9804 540 1078 8186 free ... memtype resident hot warm cold ... Some columns for paging activity of the various types may be useful too. The key thing that I wanted to suggest here was that with such an interface you can see how much is in a very active working set, how much is used sometimes, and how much is there just because nothing else has needed the space yet. It would certainly help in understanding how memory is used, particularly when you have workloads that see memory mappings to fs buffers lost due to application heap demands. Perhaps in the world of memory sets, nfsbuf and zfsbuf are their own memory sets. usr may be split across several memory sets. And why "vmstat -b"? According to the S9 man page I had handy, that option wasn't taken. Perhaps "vmstat -t" for temperature? But I bet that others have better words to use than hot, warm, and cold. And of course, I am not sure that my notion of hot, warm, and cold has any pratical way to be counted in the current vm subsystem or under the improvements in the works. Is this worth pursuing further? Mike -- Mike Gerdts http://mgerdts.blogspot.com/ _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss