Well, 4270983830 = 0xFE920A96 -- curiously close to the 32-bit
wraparound at 0xFFFFFFFF, eh?  It looks like its cousin's value has
already wrapped.  These sure look like 32-bit unsigned counters!

You'll fare better to start by taking the *deltas* over an interval.  If
a delta over an interval if negative, that counter has wrapped and you
will need to adjust that delta appropriately (ie: delta = ((0xFFFFFFFF -
v(t1)) + v(t2)) rather than (delta = v(t2) - v(t1))).  Of course, one must
use a delta-t that does not allow for more than one wraparound! ;-)

Are you on SPARC or x64?  On x64, the segmapsize defaults to the
pathetic value of 64 MB!  Perhaps that's the devil you are chasing?
See http://www.solarisinternals.com/wiki/index.php/Segmap_tuning
for more info, but take that "12%" guidance with a grain of salt.  If
you expect your system to use 60% of its memory for filesystem cache,
set its segmapsize closer to that, perhaps more like 42% than 12%
of your physical RAM.  You might illustrate once-again that 42 really
*is* The Answer to Life, the Universe, and Everything ...

HTH,
-- Bob

Dale Ghent wrote:

... properly that is :)

I'm monitoring some very busy NFS clients and would like to graph the segmap cache hits and misses. I took a look inside the code of the segmapstat script included in Mr. Gregg's CacheKit collection, and I'm getting some negative misses values in the results.

The hits and misses are being calculated in segmapstat as such:

hits = get_reclaim + get_use

misses = getmap - hits

The get_reclaim, get_use, and getmap are kstats (see 'kstat -m unix -n segmap')

The problem I have on some servers is that the value for misses is negative because the value for hits is far larger than the value of getmap. Is this really a valid scenario?

Going on the above equation with data from an example server:

get_reclaim = 4259681823
get_use = 11302007
getmap = 842307023

So:

hits = 4259681823 + 11302007 = 4270983830
misses = 842307023 - 4270983830 = -3428676807

This doesn't seem right. Well, it *isn't* right. I don't know how one could have negative anything in the context of counting cache hits and misses. Any thoughts? Are there other kstats I should be looking at to derive these values?

/dale
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to