《2022年Solaris操作系统内存管理介绍 .pdf》由会员分享,可在线阅读,更多相关《2022年Solaris操作系统内存管理介绍 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Solaris操作系统内存管理介绍作者:张士辉目的:上周南方基地同时询问相应solaris中内存管理问题,通过之前在 ITC 遇到类似故障,我搜集了相关资料详细说明内存管理知识。时间:2010年 12月 05日软件环境:操作系统:SUN Solaris 5.10 Solaris内存主要用在以下几个方面:核心,进程,文件系统缓存。如下是监控内存使用的方法。1.可用系统物理内存2.分配给 Solaris核心的内存数量3.文件系统缓存使用的内存数量4.进程使用的内存数量5.系统剩余的内存数量1.可用系统物理内存使用 prtconf命令,察看系统可用的物理内存数量。prtconf|head-2 Sys
2、tem Configuration:Sun Microsystems sun4u Memory size:49152 Megabytes 2.分配给 Solaris核心的内存数量名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -使用 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
3、:39:28 483386752 202156800 0 4400701440 2886180864 0 656105472 0 3.文件系统缓存使用的内存数量文件系统缓存使用系统可用的剩余内存缓存文件。在Solaris上,可用的剩余内存(free memory)大部分情况下总是接近0;Solaris8之前,vmstat 显示的 free 列表示可用的剩余内存,往往在系统启动(booted)的时候很高,随着系统运行慢慢降低为0,这是正常的,因为文件系统缓存的设计目的就是最大化利用系统可用内存来缓存最经常访问的文件。在 Solaris中,vmstat 显示的 free 是系统可用的剩余内存(fr
4、ee 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
5、9 7 85 如上 vmstat 结果表示,文件系统缓存占用了将近33156520k内存。Free Memory 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -由于文件系统缓存总是尽量利用可用的剩余内存缓存文件,因此大部分情况下 Free memory 总是接近 0.4.进程使用的内存数量系统运行时会不断的page in page out;繁忙的 paging 操作,可导致 Page Scaner 运行频繁,因此伴随有较高的scan-rage(sr)和 page-out(po);这可以作为系统繁忙 paging 的表示。如果有进程被 swap(w0),则通常表示内存短
6、缺,这时候往往swap设备的IO 比较繁忙。Swap Space Solaris 交换空间(swap space)有 2 个重要的状态:保留(swap reservation)和分配(physical swap allocation).保留(swap reservation)是指 Process 创建 segment的时候,系统分配给Process 虚拟的内存地址空间(virtual memory address space),同时为了保证该 segment 以后可以被 page out 到 swap,分配给 Process 与该 segment 同样大小的虚拟交换空间(virtual swa
7、p space).例如,process 创建一个 100M的 segment,系统会分配给该 process100M的 virtual memory address space,但不会分配给 process 物理内存(physical memory);同时在 Swap space 中预先保留(reservation)100M虚拟交换空间(virtual swap space).分配(physical swap allocation)是指 segment driver给 process segment分配物理内存时,预先为swap reservation区分配同样大小的物理交换空间(physic
8、al swap space),用来 page-out.例如,process 在已有 100M的 virtual memory address space基础上,通过 trap/page-fault/zero-fill-on-demand分配到 10M的物理内存;同时会为预名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -先保留(reservation)的 100M虚拟交换空间(virtual swap space)分配 10M物理 swap space.5.系统虚拟交换空间系统虚拟交换空间的数量为物理磁盘交换空间大小(disk swap space)加上 Solaris在
9、内存中分配的交换空间大小(memory swap space).使用 swap s察看虚拟交换空间信息。Appserver01:oracle$swap-s total:929688k bytes allocated+57408k reserved=987096k used,17715000k available 6.系统物理交换空间系统物理交换空间的数量为/etc/vfstab中配置的磁盘交换空间大小。使用 swap l 察看。Appserver01:oracle$swap-l swapfile dev swaplo blocks free/dev/vx/dsk/swapvol 230,6 1
10、6 25165808 25165808 必须确保 swap s 和 swap l 的 available&free 非 0,否则将无法分配虚拟交换内存或者物理交换内存;此时,Oracle 通常会遇见 ORA-4030和ORA-12500错误。可计算 memory swap space:987,096k+17,715,000k-25165808/2k=6,119,192k 7.进程的内存进程的内存也可分为2 种,虚拟内存使用和物理内存使用。进程虚拟内存是指已经分配给进程的虚拟地址空间(virtual address space);物理内存是指分配给进程的真实的物理内存(real physical
11、 memory pages)数量。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -Ps的 vsz 表示虚拟内存,rss 表示物理内存Appserver01:oracle$ps-opid,vsz,rss,args PID VSZ RSS COMMAND 27495 1912 1016 ksh 总结:以上为 solaris中所有内存指标的具体含义和查看方式和计算方式。由于solaris内存管理机制较为复杂,现在官方文档中也为给定特别明确的性能指标和解释,以上介绍可以解决简单内存管理方面的问题。希望对大家有所帮助。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -