AIX 上 Lotus Domino 的内存使用_第1页
AIX 上 Lotus Domino 的内存使用_第2页
AIX 上 Lotus Domino 的内存使用_第3页
AIX 上 Lotus Domino 的内存使用_第4页
AIX 上 Lotus Domino 的内存使用_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 中国 选择使用条款首页产品服务与解决方案支持与下载个性化服务developerWorks中国本文内容包括:理解段布局Lotus Domino 内存控制选项建议参考资料关于作者对本文的评价相关链接:Lotus 技术文档库eServer 技术文档库developerWorks 中国 > Lotus | eServer >AIX 上 Lotus Domino 的内存使用文档选项将此页作为电子邮件发送讨论最新推荐Java 应用开发源动力-下载免费软件,快速启动开发级别: 初级Eddy Bell, 软件工程师, IBM2006 年 4 月 10 日了解 Lotus Domino 服务器的

2、IBM AIX 段布局以及如何配置Notes.ini 文件设置 ConstrainedSHMSizeMB 和PercentAvailSysResources 来调整服务器的内存分配。这里还提供了对服务器配置的建议。编者注:本文中使用的图表最初发表在 IBM 红皮书Developing and Porting C and C+Applications on AIX中。IBM AIX 平台处理内存的方式与 Lotus Domino 支持的所有其他平台都不一样。AIX 使用一个分段的体系结构,这种体系结构既有优点,也有缺点。主要的优点是性能提高了。缺点是,32 位的程序必须认识这种分段体系结构,才能

3、充分利用 32 位地址空间。本文描述 AIX 平台上 32 位应用程序可能具有的段布局,以及 Lotus Domino 当前使用的布局。还将说明在使用不同的Domino 内存选项时对布局的影响。本文针对有经验的 Lotus Domino 系统管理员,他们应该熟悉 AIX 平台。理解段布局在默认情况下,AIX 上的 32 位虚拟地址空间由 16 个段组成,每个段 256 MB。对于使用默认段布局的任何应用程序,虚拟地址空间看起来像图 1 这样:第 1 段(0x0用于内核文本和数据。第 2 段(0x1用于用户文本。第 3 段(0x2用于用户堆栈和数据。第 4 段到第 13 段(0x3 到 0xC供

4、用户进程使用,如果调用 shmat( 或 mmap( 的话。第 14 段(0xD为共享的库文本保留。第 15 段(0xE供用户进程使用。最后一段(0xF用于每个进程共享的库数据。对于不熟悉图 1 中使用的术语的读者,下面给出其定义:文本。只读和可执行的代码。它可以有三种类型:内核代码、用户代码和共享的库代码。数据。可读/写数据区域,可以有三种类型:内核数据、用户数据和共享的库数据。注: Shmat( 和 mmap( 在 Lotus Domino 中用于获得共享内存。图 1. 虚拟地址空间示例dW 全部内容 使用 AIX 大内存模型的程序具有图 2 所示的内存布局:第 1 段(0x0用于内核文本

5、和数据。第 2 段(0x1用于用户文本。第 3 段(0x2用于用户堆栈和数据。第 4 段到第 7 段(0x3 到 0x6为进程堆保留。第 8 段到第 13 段(0x7 到 0xC供用户进程使用,如果调用 shmat( 或 mmap( 的话。第 14 段(0xD为共享的库文本保留。第 15 段(0xE供用户进程使用。最后一段(0xF用于每个进程共享的库数据。Lotus Domino 的当前版本使用 AIX 大内存模型。图 2. AIX 大内存模型 在 AIX 5L 版本 5.2 和更高版本中,有一个非常大的内存模型。我们希望 Lotus Domino 以后会使用这个模型,但是当前没有使用。这个模

6、型有三种形式:第一种形式适用于进程堆(用户数据小于 2.5 GB 并大于 256 MB 的程序(见图 3。这个模型看起来与默认的 AIX 段布局相似,但是如果使用动态段分配(DSA,那么第 4 段到第 8 段(0x3 到 0x7供进程堆使用。另外,如果动态段分配调用 shmat( 或 mmap(,那么 0xA 到 0xE 段供用户进程使用。图 3. AIX 非常大内存模型:第一种形式 第二种形式适用于进程堆大于 2.5 GB 的程序(见图 4,在这种形式中:第 1 段(0x0用于内核文本和数据。第 2 段(0x1用于用户文本。第 3 段(0x2用于用户堆栈。但是,共享的库文本和数据也使用这个段

7、(0x2。如果使用动态段分配,那么第 4 段到第 16 段(0x3 到 0xF供用户堆使用。如果动态段分配调用 shmat( 或 mmap(,那么 0xB 到 0xF 段供用户进程使用。图 4. AIX 非常大内存模型:第二种形式 第三种形式适用于进程堆小于 256 MB 的程序(见图 5。在这种形式中:第 1 段(0x0用于内核文本和数据。第 2 段(0x1用于用户文本。第 3 段(0x2用于用户堆栈和数据。但是,共享的库文本和数据也可能存储在这个段中。如果动态段分配调用 shmat( 或 mmap(,那么其余的段(0x3 到 0xF供用户进程使用。图 5. AIX 非常大内存模型:第三种形

8、式 回页首Lotus Domino 内存控制选项既然已经了解了关于 AIX 内存模型的一些基本信息,我们就来研究一下 Lotus Domino 使用的模型,以及 Domino 内存控制选项如何影响虚拟地址空间。本文的余下部分讲解如何通过配置 Domino 服务器的 Notes.ini 文件中的设置来改变段布局。在开始之前,先提供一些说明,帮助您更好地理解表格中的信息。程序名。这是一个典型的 Domino 应用程序示例。内核文本和数据。此内存是共享的。用户文本。此内存由具有相同可执行文件的所有程序共享(例如,在三个 update 任务之间共享一块内存。用户堆栈。这个段是每个进程专用的。进程堆。这

9、个段是每个进程专用的。共享的内存。这个段由所有 Domino 进程共享。共享的库文本。这个段由系统上的所有进程共享。不可用的段。 Lotus Domino 当前不能使用这个段。共享的库数据。这个段是每个进程专用的。非 Domino。这个段由第三方应用程序共享和使用。所有 Domino 应用程序共享的程序共享数据从 256 MB 开始,并根据需要增加 256 MB 的段,直到到达最大空闲段数量。第一个表显示没有启用 Domino 内存设置时的结果。程序名内核文本/数据256 MB用户文本256 MB用户堆栈256 MB进程堆512 MB共享的内存2 GB共享的库文本不可用的段共享的库数据Serv

10、er123 4 和 5 6 到 13141516 HTTP123 4 和 5 6 到 13141516 Update123 4 和 5 6 到 13141516 N/A123 4 和 5 6 到 13141516进程堆栈进程私有数据Domino 共享的内存第三方 API 应用程序共享的内存256 MB 512 MB2048 MB0 MB这是共享内存的布局:NSF Buffer Pool(UBM=3/8 shm = 750 MB其他 Domino 共享内存 = 1250 MB配置 ConstrainedSHMSizeMB 设置Domino 服务器的 Notes.ini 文件中的 Constrai

11、nedSHMSizeMB 设置对共享内存进行限制。使用这个设置有两种方式。如果 ConstrainedSHMSizeMB=1,那么共享内存被限制为默认大小。在AIX 中,默认大小是 2.25 GB。还可以以 MB 为单位为这个设置指定大小。例如,如果将这个设置修改为:ConstrainedSHMSizeMB = 1744那么会得到下表中列出的结果。程序名内核文本/数据256MB用户文本256MB用户堆栈256MB进程堆512MB共享的内存1.744 GB非Domino256 MB共享的库文本不可用的段共享的库数据Server123 4 和 5 6 到 1213141516 HTTP123 4

12、和 5 6 到 1213141516 Update123 4 和 5 6 到 1213141516 N/A123 4 和 5 6 到 1213141516进程堆栈进程私有数据Domino 共享的内存第三方 API 应用程序共享的内存256 MB 512 MB1744 MB256 MB这是共享内存的布局:NSF Buffer Pool(UBM=3/8 shm = 654 MB其他 Domino 共享内存 = 1099 MB如果在 Notes.ini 文件中配置 ConstrainedSHMSizeMB= 1744 并将 dataseg 设置为 3(数据段的数量,那么会得到下表中列出的结果。AIX

13、 上 Lotus Domino 的内存使用 程序名 Server HTTP 内核文本/ 数据 256 MB 1 1 用户文 本 256 MB 2 2 2 2 用户堆 栈 256 MB 3 3 3 3 非 进程堆 Domino 768 MB 1.744 GB 4到6 4到6 4到6 4到6 7 到 13 7 到 13 7 到 13 7 到 13 共享的 库文本 14 14 14 14 不可用 的段 15 15 15 15 共享的 库数据 16 16 16 16 Update 1 N/A 进程堆栈 256 MB 1 进程私有数据 768 MB Domino 共享的内存 1744 MB 第三方 AP

14、I 应用程序共享 的内存 0 MB 这是共享内存的布局: NSF Buffer Pool(UBM=3/8 shm) = 654 MB 其他 Domino 共享内存 = 1099 MB 在下表中,ConstrainedSHMSizeMB 设置为 1024 MB。 内核文 用户文 用户堆 共享的内 本/数 进程堆 本 栈 存 512 MB 据 256 MB 256 MB 1024 MB 256 MB 1 1 2 2 2 2 3 3 3 3 4和5 4和5 4和5 4和5 6到9 6到9 6到9 6到9 非 Domino 1024 MB 10 到 13 10 到 13 10 到 13 10 到 13

15、 共享 的库 文本 14 14 14 14 不可 用的 段 15 15 15 15 共享 的库 数据 16 16 16 16 程序名 Server HTTP Update 1 N/A 进程堆栈 256 MB 1 进程私有数据 512 MB Domino 共享的内存 1024 MB 第三方 API 应用程 序共享的内存 1024 MB 这是共享内存的布局: NSF Buffer Pool(UBM=3/8 shm) = 384 MB 其他 Domino 共享内存 = 640 MB 配置 PercentAvailSysResources 设置 Domino 服务器的 Notes.ini 文件中的 P

16、ercentAvailSysResources 设置允许控制服务器上的内存 分配。这个设置的值从 2% 到 100%。在下表中,PercentAvailSysResources 设置为 25%,系 统具有 4 GB 内存。换句话说,1 GB 内存分配给 Domino 服务器。 内核文本/ 数据 256 MB 1 用户文 本 256 MB 2 用户堆 栈 256 MB 3 共享的内 进程堆 存 512 MB 2048 MB 4和5 6 到 13 共享的 库文本 14 不可用 的段 15 共享的 库数据 16 程序名 Server (6 of 92006-04-25 15:55:52 AIX 上

17、Lotus Domino 的内存使用 HTTP 1 2 2 2 3 3 3 4和5 4和5 4和5 6 到 13 6 到 13 6 到 13 14 14 14 15 15 15 16 16 16 Update 1 N/A 进程堆栈 256 MB 1 进程私有数据 512 MB Domino 共享的内存 2028 MB 第三方 API 应用程序共享 的内存 0 MB 这是共享内存的布局: NSF Buffer Pool(UBM=3/8 shm) = 384 MB 其他 Domino 共享内存 = 1664 MB 在这个配置中,NSF Buffer Pool 设置为 3/8 * (RAM * .2

18、5。除了操作系统对段施加的限制之 外,没有定义对 Domino 共享内存增长的限制。 下一个表显示在 Notes.ini 文件中设置 NSF_BUFFER_POOL_SIZE_MB= 512 和 PercentAvailSysResources=25 的结果。 内核文本/ 数据 256 MB 1 1 用户文 本 256 MB 2 2 2 2 用户堆 栈 256 MB 3 3 3 3 共享的内 进程堆 存 512 MB 2048 MB 4和5 4和5 4和5 4和5 6 到 13 6 到 13 6 到 13 6 到 13 共享的 库文本 14 14 14 14 不可用 的段 15 15 15 1

19、5 共享的 库数据 16 16 16 16 程序名 Server HTTP Update 1 N/A 进程堆栈 256 MB 1 进程私有数据 512 MB Domino 共享的内存 2028 MB 第三方 API 应用程序共享 的内存 0 MB 这是共享内存的布局: NSF Buffer Pool(UBM=3/8 shm) = 512 MB 其他 Domino 共享内存 = 1536 MB 在这个配置中,NSF Buffer Pool 是直接配置的,PercentAvailSysResources 被忽略。除了操作 系统对段施加的限制之外,没有定义对 Domino 共享内存增长的限制。 回页

20、首 建议 我们建议不要以任何形式使用 ConstrainedSHMSizeMB。在当前使用的 AIX 大内存模型中, ConstrainedSHMSizeMB 应该只用来支持需要共享内存的第三方应用程序。如果使用它,那么 Lotus Domino 可用的虚拟地址空间就少了。这与 Domino 支持的其他平台不一样。在其他平台 上,使用 ConstrainedSHMSizeMB 减少共享内存,就会自动地增加应用程序的私有空间。 为了进行说明,现在举一个例子:一台 Domino 服务器正在运行非常沉重的 Lotus Domino Web Access HTTP 负载,它需要 1024 MB 的私有

21、数据空间。在 AIX 上,在 Domino 程序目录中使 (7 of 92006-04-25 15:55:52 AIX 上 Lotus Domino 的内存使用 用 dataseg f 4 *,从而让所有 Domino 程序文件可以使用 4 个私有内存段。在其他平台上,需 要使用操作系统决定的虚拟地址空间大小。然后减去程序文本和共享的库文本使用的空间。这会 得到 Lotus Domino 可用的虚拟数据空间。在这个例子中,从 Lotus Domino 可用的虚拟数据空 间中减去 1024 MB,并使用这个值配置 ConstrainedSHMSizeMB 设置。 回页首 参考资料 学习 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。 developerWorks Lotus 文章,“Ask Professor INI: Managing memo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论