# mpstat 1
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 0 0 200 402 302 139 53 1 0 0 150 100 0 0 0
1 0 0 0 102 100 83 0 3 0 0 105 2 0 0 98
2 0 0 0 118 104 85 0 1 0 0 26 1 1 0 98
如发现CPU负载有问题,有想去了解下有无内存给CPU用呢:
可用说的vmstat, 还可查下CPU在从内存读数据时,对内存数据的命中率,100%?
# sar -b 1 100
SunOS u60 5.10 Generic_118822-08 sun4u 11/18/2005
14:20:45 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
14:20:46 0 0 100 0 0 100 0 0
14:20:47 0 0 100 0 0 100 0 0
14:20:48 0 0 100 0 0 100 0 0
...
看了内存情况,心里有点嘀咕,这系统关于内存是如何设的呢,何时把内存排不下的数据仍回到硬盘上的:
# netstat -k
...
system_pages:
physmem 63284 nalloc 11786054 nfree 11708436 nalloc_calls 5350 nfree_calls 4502
kernelbase 268435456 econtig 285212672 freemem 15428 availrmem 55955 lotsfree 977
cachefree 977 desfree 488 minfree 244 fastscan 8192 slowscan 100 nscan 0
desscan 25 pp_kernel 6089 pagesfree 15428 pageslocked 6579 pagestotal 62534
...
Solaris内存,为了速度,不是当CPU修改后立刻再写回硬盘,而到一定程度,即Water Mark - bufhwm:
缺省约占2%的物理内存,如你想修改,又得看/etc/system的参数:
# more /etc/system
...
或直接debug:
# adb -k /dev/ksyms /dev/mem
...
看了内存关于读写硬盘,可能直接看I/O了:
包括你的iostat 和 netstat, 还有busstat, nfsstat:
发表评论