solaris 上vmstat swap sar的几个问题
本帖最后由 BHR_kramer 于 2012-05-21 15:34 编辑发现sar swap vmstat 这几个命令得出的信息比较混乱。 求指教
看sar的man手册,其中 sar -r是这么解释的 -r Reports unused memory pages and disk blocks:
freemem average pages avail-
able to user
processes.
freeswap diskblocksavail-
ablefor page swap-
ping.
我的理解,man手册是说 得到的freemem是 page的数量为单位, freeswap是disk block 的个数为单位。
那么下面命令返回结果如下bash-3.00# sar -r 6 2
SunOS xiete 5.10 Generic_147440-09 sun4u 05/21/2012
15:08:40 freemem freeswap
15:08:47 87763 18283392
15:08:53 87763 18283392
Average 87763 18283392
我的系统上,block size是512,可以得出结论,空闲的swap 应该是 18283392*512/1024=9141696k
----------------------------------------------------------------------------------
再看 swap命令的man手册,其中 -s最后有这么一段These numbers include swapspacefromallconfigured
swapareasaslistedbythe -l option, as well swap
space in the form of physical memory.
理解是, swap -s 得出的数据包含swap的大小以及物理内存的大小
所以 下面的命令bash-3.00# swap -s
total: 13142696k bytes allocated + 5732008k reserved = 18874704k used, 9142120k available
最后的9142120k 应该是 空闲的swap和物理内存之和。
可是前面sar 得到的swap 大小9141696k 和 这里的9142120k 相差不多 , 才424k。 难道说 物理空闲内存为424k吗?
到此处有3个疑问
1. swap -s 看到的到底是 swap的大小还是 swap加物理内存的大小
2. sar-r中 freeswap的大小是自己swap的空闲大小么?还是其他的什么?
3. sar-r中 freemem的大小是自己 mem的空闲大小么? 还是其他的什么?
---------------------------------------
通过vmstat得到的结果又不一样。 vmstat 的man手册中有如下一段 memory Report on usage of virtual and real memory.
swap available swap space (Kbytes)
free size of the free list (Kbytes)
这里的意思是说 vmstat得到的swap是空闲swap的大小,free 得到的是实际物理内存的空闲大小。
可是根据下面的输出bash-3.00# vmstat
kthr memory page disk faults cpu
r b w swapfreeremf pi po fr de sr m0 m1 m3 m4 in sy cs us sy id
0 0 0 10373048 1002752 17 84 71 0 1000010 4965 14914 10150 23 2 75
swap 的大小为10373048k 远远大于之前sar 和 swap得到的值, 这就很离谱了。 到底这里得到的swap是正确的还是 另外两个命令得到的是正确的?
mem 的大小为1002752k 也远远大于之前sar得出的值(87763 *8192/1024) , 这又是谁对呢? 自我理解,swap -s 9142120k available是剩余物理内存+交换区。
sar -rfreeswap也是剩余物理内存+空闲交换区
sar -r freemem是空闲的物理内存
通过prtconf -v |grep -i mem查看实际内存大小可以知道内存的使用(prtdiag -v也可以),通过format查看系统盘swap分区大小可以知道指定swap的大小。
然后你就会知道使用的内存是多少,空闲的是多少 结论,
swap -s 看到的就是空闲swap 加空闲物理内存的大小
sar -r 看到的swap是空闲的swap大小
sar -r 看到的free是 可用的 物理内存大小。要非常注意的是这里的可用不是指空闲,这里的可用包括空闲以及buffer
vmstat 看到的swap是swap的大小,
vmstat 看到的free是可用的 物理内存大小。要非常注意的是这里的可用不是指空闲,这里的可用包括空闲以及buffer
所以以后要
想知道,可用的swap大小,就用sar 或者 swap -s,但是swap -s得出的值会包含空闲的物理内存
想知道,空闲物理内存大小,就用swap -s 减去 sar得出的值,但这基本没什么意义吧?通常需要的是可用的,而不用关心空闲
想知道,可用的物理内存大小,就用vmstat 或者 sar -r
页:
[1]