Solaris内存主要用在以下几个方面:核心,进程,文件系统缓存。如下是监控内存使用的方法。
可用系统物理内存
分配给Solaris核心的内存数量
文件系统缓存使用的内存数量
进程使用的内存数量
系统剩余的内存数量
Total Physical Memory
使用prtconf命令,察看系统物理内存数量。
prtconf | head -2
System Configuration: Sun Microsystems sun4u
Memory size: 49152 Megabytes
Kernel Memory
使用sar –k察看系统核心占用的内存,如下3个内存池之和即是,单位byte
sar -k 1 1
SunOS lonespappb33 5.8 Generic_117350-13 sun4u 11/28/05
05:39:26 sml_mem alloc fail lg_mem alloc fail ovsz_alloc fail
05:39:28 483386752 202156800 0 4400701440 2886180864 0 656105472 0
File System Caching Memory
文件系统缓存使用系统可用的剩余内存缓存文件。在Solaris上,可用的剩余内存(free memory)大部分情况下总是接近0;Solaris8之前,vmstat 显示的free列表示可用的剩余内存,往往在系统启动(booted)的时候很高,随着系统运行慢慢降低为0,这是正常的,因为文件系统缓存的设计目的就是{zd0}化利用系统可用内存来缓存最经常访问的文件。
在Solaris8中,vmstat 显示的free是系统可用的剩余内存(free memory)和可pageable的文件系统缓存(file system cache memory),man的解释:free size of the free list (Kbytes) 。文件系统缓存也挂在内存Free List上。
vmstat 1 5
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 s3 in sy cs us sy id
0 1 0 62618064 33156520 5220 0 1144 0 0 0 0 0 1 0 0 8093 47291 1895 9 7 85
如上Solaris 8,vmstat 结果表示,文件系统缓存占用了将近33156520k内存。
Free Memory
由于文件系统缓存总是尽量利用可用的剩余内存缓存文件,因此大部分情况下Free memory总是接近0.
Memory Shortage Detection
系统运行时会不断的page in page out;繁忙的paging操作,可导致Page Scaner运行频繁,因此伴随有较高的scan-rage(sr)和page-out(po);这可以作为系统繁忙paging 的表示。
如果有进程被swap(w