I'm looking for an explanation for some apparent inconsistencies in the output from the prtswap command. There is an example of prtswap in section 6.18.7 of the Solaris Performance and Tools book.
I extracted prtswap from the file RMC3.9.5beta.tar.Z on the memtool download site http://www.solarisinternals.com/si/downloads/_memtool/. prtswap is a ksh script that draws its data from the swap(1M) command and the kernel's swap accounting data structures. I assume that version 3.9.5beta is the most current, but it looks like it hasn't been updated for a few years. Here's the output from prtswap on a SF6800 with 8GB RAM installed and 8143MB of disk-based swap space. The system is running Solaris 8, and is patch-current: # prtswap -l Swap Reservations: -------------------------------------------------------------------------- Total Virtual Swap Configured: 14490MB = RAM Swap Configured: 6347MB Physical Swap Configured: + 8143MB Total Virtual Swap Reserved Against: 7573MB = RAM Swap Reserved Against: 2336MB Physical Swap Reserved Against: + 5237MB Total Virtual Swap Unresv. & Avail. for Reservation: 6917MB = Physical Swap Unresv. & Avail. for Reservations: 2906MB RAM Swap Unresv. & Avail. for Reservations: + 4011MB Swap Allocations: (Reserved and Phys pages allocated) -------------------------------------------------------------------------- Total Virtual Swap Configured: 14490MB Total Virtual Swap Allocated Against: 4535MB Physical Swap Utilization: (pages swapped out) -------------------------------------------------------------------------- Physical Swap Free (should not be zero!): 8143MB = Physical Swap Configured: 8143MB Physical Swap Used (pages swapped out): - 0MB The data in the Swap Reservations section seems credible, and after reading section 6.18, the following relation is true: Total Virtual Swap Reserved Against (7573MB) > Total Virtual Swap Allocated Against (4535MB). But these relations in the report don't make sense to me: 1) The last line states that no pages are swapped out (Physical swap used = 0), so the allocated swap (4535MB) should all be in RAM. But RAM swap reserved is 2336MB. How can this be if, according to figure 6.5 on page 167, reserved swap includes allocated swap, unallocated swap, and used physical swap? 2) The sum of RAM swap unreserved and available for reservations (4011MB) and the total virtual swap allocated (4535MB), which again must all be in RAM since there are no pages swapped out to disk, is 8545MB. But this is greater than the amount of RAM installed in the server - why? 3) I've included a run of vmstat below: bash-2.03$ vmstat 1 10 procs memory page disk faults cpu r b w swap free re mf pi po fr de sr s0 s1 s6 s1 in sy cs us sy id 0 0 0 6706904 2656984 283 981 131 1 0 0 0 8 1 0 0 3082 210 2978 6 5 89 0 0 0 7088672 1922488 0 6 0 0 0 0 0 12 0 0 11 4430 19570 6471 16 13 70 0 0 0 7088736 1922552 0 0 0 0 0 0 0 11 4 0 12 4331 17241 6086 14 15 71 0 0 0 7088672 1922488 0 0 0 0 0 0 0 12 0 0 11 4347 19184 6131 9 13 77 0 0 0 7088672 1922496 0 0 0 0 0 0 0 12 0 0 11 4292 17556 6110 15 13 72 0 0 0 7088736 1922552 0 0 0 0 0 0 0 12 0 0 12 4354 18878 6383 9 13 79 0 0 0 7088672 1922488 0 0 0 0 0 0 0 13 0 0 12 4412 19544 6584 16 12 71 0 0 0 7088672 1922488 0 0 0 0 0 0 0 14 0 0 12 4330 17511 6057 10 14 76 0 0 0 7088736 1922552 0 0 0 0 0 0 0 11 0 0 11 4209 16148 5786 11 12 77 0 0 0 7088736 1922552 0 0 0 0 0 0 0 15 0 0 14 4392 17389 6243 9 12 78 Available swap is in the range 7088672 - 7088736, or about 6922MB. This is "close enough" to the value prtswap reported for total virtual swap unreserved, 6917MB. But free memory, ranging from 1922488 to 1922552 or about 1877MB, is nowhere near the 4011MB that prtswap reports is unreserved RAM swap. I've looked at the prtswap script and the anonymous memory structures themselves in the Solaris 8 header file /usr/include/vm/anon.h for explanations without success. The code seems consistent with the documentation, and vice-versa. Does anyone have any insight into these findings? Thanks! Peter -- This message posted from opensolaris.org _______________________________________________ perf-discuss mailing list perf-discuss@opensolaris.org