Chinaunix首页 | 论坛 | 博客
  • 博客访问: 177309
  • 博文数量: 33
  • 博客积分: 1411
  • 博客等级: 上尉
  • 技术积分: 342
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-04 13:04
文章存档

2008年(33)

我的朋友

分类:

2008-09-04 14:46:11

本项整理是在学习H4262S的基础上,融合了自己的一些理解,整理而成的随便,如有理解不当的地方请指正,谢谢!
 

 

内存管理

简介

主要从九个方面进行描述

1.       HP-UX系统怎么执行内存管理

2.       涉及内存管理的主要性能问题描述

3.       描述 UNIX Buffer Cache

4.       描述 sync 进程

5.       识别内存瓶颈的征兆

6.       识别全局和进程内存指标

7.       用性能分析工具分析内存管理问题

8.       描述恰当的内存瓶颈的更改措施

9.       描述serialize命令的功能

 

内存管理理解

我们通过TOPvmstat 等内存查看命令总有一个VM值,这个值的大小就是:

Virtual memory=physical memory+swap space at disk

 

内存管理是kernel的一个子系统 ,它负责管理计算机的主内存(物理内存 RAM

Process(进程) 需要空间的时候,kernel 就会分配memory page (缺省大小4kb)给进程,当主内存(物理内存)free空间不够的时候,kernel 将会把一些pages 拷贝到swap space ,来释放主内存的空间,因此Swap space 可以看着为主内存的一个扩展

注:当进入到swap space 进程需要执行时,必须要被重新page in 到主内存后,才能执行。

 

怎样确保主内存有最小的free 空间呢?

通过kernel 通过vhand 守护进程来搞定这件事情。

Vhand 守护进程负责保持对主内存有一个最小的free空间。通过监控未使用的pages,尽量保持freepages数量大于某个阀值。Kernel通过paging deactivation的综合方式来进行free memory数量的管理。

Free memory的大小分别通过三个阀值进行确认,三个阀值分别为:LOTSFREE ,DESFREE,MINFREE

free memory  大于 LOTSFREE  将不产出paging

  free memory  小于LOTSFREE    将产出paging

free memory  小于 DESFREE   这个过程不是一个稳定的过程,相比较开始时的paging 频率,此时的paging的频率将大大的提高,直到free memory 大于 DESFREE

free memory  小于MINFREE   

 一些process (进程)将deactivation,当一个process deactivation process 将被放入deactivation queue(队列),vhand 守护进程将page out处于deactivation queue process 的所有pages(包括u-area swaping swap partition

free memory 大于 MINFREE,这些process 又将自动的被reactivate。当process  reactivate后,仅仅 u-area 立即被page in。别的pages 将在需要时候才能被faulted in

 

注:HP-UX 11.00 LOTSFREE ,DESFREE,MINFREE 值是可以通过内核参数调整的

在早于HP-UX 11.00版本LOTSFREE ,DESFREE,MINFREE值是不能手工调整的,都是使用HP 的推荐值。

 

Buffer Cache

 

因为硬盘通常是瓶颈,系统尽量减少硬盘的访问次数。因此大部分常访问的文件就缓存在内存的某个区域,这个区域就叫buffer cache

只要记住buffer cache如下几条描述,就很明白了。

 

Buffer cache 用来从硬盘缓存大量的常用访问文件

Buffer cache 仅仅适用于文件系统访问,不适用于裸设备。

Buffer cache 的值通过内核参数 dbc­_min_pct dbc_max_pct进行控制

Buffer cache 加速了文件系统的访问速度。

Buffer cache 的值是可变化的,变化范围在dbc­_min_pct dbc_max_pct之间。

当需要缓存更多的文件时,buffer cache 将增大,但是不能超过dbc_max_pct设定值(以物理内存的百分比计算)。

当系统别的应用需要更多的内存时,buffer cache 也可以适当的减小。但是不能少于dbc_min_pct设定值(以物理内存的百分比计算)。

 

记住:通常一个东西都具有双面性的,我们不要只记得buffer cache 大点的好处,其实害处也是有的。

 

通常一个较大的buffer cache 可以缓存更多的文件,它将缩短文件系统的访问时间,但是这将耗费更多的内存,从而别的应用使用的内存将减少。

注意:

1.如果buffer cache 设置过大,将可能造成应用突然中断,因为此时在进行buffer cache 文件到硬盘的存写。

2. Buffer cache 的值通过内核参数 dbc­_min_pct dbc_max_pct进行控制的前提是bufpagesnbuf 内核参数的值设置为“0

 

 

阅读(2259) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~