全部博文(33)
2008年(33)
分类:
2008-09-09 10:10:17
内存检测指标-基于每个进程
1) RSS/VSS的大小
2) Text,data,和track段的大小
3) 共享内存段的数量
4) 被阻塞在虚拟内存的时间
RSS(resident set size):进程实际驻存在物理内存的部分的大小。因为一个进程执行不需要把整个进程都全部驻存到物理内存。
VSS(virtual set size) :一个进程的总的大小。只有当进程执行时,整个进程都驻存到物理内存时才RSS=VSS
每个进程都有text,data和track段。这些段的值将进行监控,特别是较大的进程。
Text,data和track每个段都有能够增加到的最大值,如果一个进程某个段的的值超过了最大值,那么这个进程将终止,有时会“core dumps”
每个进程都会附有share memory ,每个进程的share memory段的数量是通过内核参数shmseg来限制。
被阻塞在虚拟内存的时间:就是进程被阻止执行的时间,因为进程要等候code或者data被page in 物理内存。
查看虚拟内存统计 vmstat
Vmstat命令的输出主要注意po(pages page out)列的值,如果po值=0,通常表示没有page发生。
命令输出的fr列表示vhand 守护进程 free pages /s
sr列表示vhand 守护进程 scanned pages/s
fr/sr的值表示vhand 进程的成功率。这个不用太关心,只要重点注意PO值,是否等于0吧。
优化内存瓶颈系统-硬件方面解决
1)添加内存
2)减少x-termnials的使用
因为 x-terminal占用内存很大,当小应用大约占
调整优化内存瓶颈系统-软件方面解决
1) 找出不必要的进程(额外窗口,屏保,长串子进程等)
2) 减少dbc_max_pct值
3) 识别找出有内存泄漏的进程
4) 检查未引用的共享内存段
5) 使用serialize 命令减少进程失效
6) 用PRM优化内存的分配
通常情况下:
用x-windows 的应用的图形程序都占用大量的系统资源包括内存
占用物理内存最多是buffer cache。为了防止free memory 低于LOTSFREE,以避免paging,需要谨慎的设置 dbc_max_pct值,以避免其占用太多的物理内存,导致paging甚至swaping发生。
内存管理部分就写到这里,请大家指证,谢谢!