The IBM AIX platform handles memory differently than all other Lotus Domino supported platforms. AIX uses a segmented architecture that has both advantages and disadvantages. The primary advantage is increased performance. Of the disadvantages, a 32-bit program must be cognizant of the segmented architecture to take full advantage of the 32-bit address space. This article describes the possible segment layouts for a 32-bit application on the AIX platform as well as the layout that Lotus Domino uses currently. It also shows what happens to the layout as you use the different Domino memory options.
This article is intended for experienced Lotus Domino system administrators familiar with the AIX platform.
By default, the 32-bit virtual address space on AIX consists of 16 segments of 256 MB each. For any application that uses the default segment layout, the virtual address space looks like the one shown in figure 1:
For anyone unfamiliar with the terms used in figure 1, here are definitions:
NOTE: Shmat() and mmap() are used in Lotus Domino to get shared memory.
Programs that use the AIX large memory model have the following memory layout shown in figure 2:
Current versions of Lotus Domino use the AIX large memory model.
In AIX 5L version 5.2 and later, there is a very large memory model. This is the model that we hope to use in the future with Lotus Domino, but it is not currently used. This model has three forms: the first form is for programs that have a process heap (user data) less than 2.5 GB and greater than 256 MB (see figure 3). The model looks similar to the default AIX segment layout, but segments four through eight (0x3 to 0x7) are available for user heap if dynamic segment allocation (DSA) is used. Also, segments 0xA to 0xE are available for user process if shmat() or mmap is called() by dynamic segment allocation.
The second form is for programs that have a process heap greater than 2.5 GB as shown in figure 4 in which:
The third form is for programs that have a process heap less than 256 MB (see figure 5). In this form:
|
Lotus Domino memory control options
Now that you have been exposed to some basic information about AIX memory models, let's explore the model that Lotus Domino uses and how the Domino memory control options change the virtual address space.
The rest of this article shows you how to change the segment layouts by configuring settings in the Domino server's Notes.ini file. Before you proceed, here is a legend to help you understand the tables of information better.
Program shared data shared by all Domino applications starts at 256 MB and grows by 256 MB segments as needed until the maximum number of free segments is reached.
This first table shows the results of having no Domino memory settings enabled.
Program name | Kernal text/data 256 MB | User text 256 MB | User stack 256 MB | Process heap 512 MB | Shared memory 2 GB | Shared lib text | Unavailable segment | Shared lib data |
---|---|---|---|---|---|---|---|---|
Server | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
HTTP | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
Update | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
N/A | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
Process stack | Process private data | Domino shared memory | Third-party API application shared memory | |||||
256 MB | 512 MB | 2048 MB | 0 MB |
This is the layout of the shared memory:
Configuring the ConstrainedSHMSizeMB setting
The ConstrainedSHMSizeMB setting in the Domino server's Notes.ini file restricts shared memory. There are two ways in which to use this setting. If ConstrainedSHMSizeMB=1, then shared memory is restricted to a default size. In AIX, the default size is 2.25 GB. You can also specify a size in megabytes for this setting, which is what we have done in this article for demonstration. For example, if you change the setting as follows:
ConstrainedSHMSizeMB = 1744
you may find the following results listed in this table.
Program name | Kernal text/data 256 MB | User text 256 MB | User stack 256 MB | Process heap 512 MB | Shared memory 1.744 GB | Non-Domino 256 MB | Shared lib text | Unavailable segment | Shared lib data |
---|---|---|---|---|---|---|---|---|---|
Server | 1 | 2 | 3 | 4 and 5 | 6 to 12 | 13 | 14 | 15 | 16 |
HTTP | 1 | 2 | 3 | 4 and 5 | 6 to 12 | 13 | 14 | 15 | 16 |
Update | 1 | 2 | 3 | 4 and 5 | 6 to 12 | 13 | 14 | 15 | 16 |
N/A | 1 | 2 | 3 | 4 and 5 | 6 to 12 | 13 | 14 | 15 | 16 |
Process stack | Process private data | Domino shared memory | Third-party API application shared memory | ||||||
256 MB | 512 MB | 1744 MB | 256 MB |
This is the layout of the shared memory:
If you configure ConstrainedSHMSizeMB= 1744 in the Notes.ini file and set the dataseg used to 3 (the number of data segments), you may find the following results in this table.
Program name | Kernal text/data 256 MB | User text 256 MB | User stack 256 MB | Process heap 768 MB | Non-Domino 1.744 GB | Shared lib text | Unavailable segment | Shared lib data |
---|---|---|---|---|---|---|---|---|
Server | 1 | 2 | 3 | 4 to 6 | 7 to 13 | 14 | 15 | 16 |
HTTP | 1 | 2 | 3 | 4 to 6 | 7 to 13 | 14 | 15 | 16 |
Update | 1 | 2 | 3 | 4 to 6 | 7 to 13 | 14 | 15 | 16 |
N/A | 1 | 2 | 3 | 4 to 6 | 7 to 13 | 14 | 15 | 16 |
Process stack | Process private data | Domino shared memory | Third-party API application shared memory | |||||
256 MB | 768 MB | 1744 MB | 0 MB |
This is the layout of the shared memory:
In the following table, ConstrainedSHMSizeMB is set to 1024 MB.
Program name | Kernal text/data 256 MB | User text 256 MB | User stack 256 MB | Process heap 512 MB | Shared memory 1024 MB | Non-Domino 1024 MB | Shared lib text | Unavailable segment | Shared lib data |
---|---|---|---|---|---|---|---|---|---|
Server | 1 | 2 | 3 | 4 and 5 | 6 to 9 | 10 to 13 | 14 | 15 | 16 |
HTTP | 1 | 2 | 3 | 4 and 5 | 6 to 9 | 10 to 13 | 14 | 15 | 16 |
Update | 1 | 2 | 3 | 4 and 5 | 6 to 9 | 10 to 13 | 14 | 15 | 16 |
N/A | 1 | 2 | 3 | 4 and 5 | 6 to 9 | 10 to 13 | 14 | 15 | 16 |
Process stack | Process private data | Domino shared memory | Third-party API application shared memory | ||||||
256 MB | 512 MB | 1024 MB | 1024 MB |
This is the layout of the shared memory:
Configuring the PercentAvailSysResources setting
The PercentAvailSysResources setting in the Domino server's Notes.ini file lets you control memory allocation on your server. Values for this setting range from 2 percent to 100 percent. In the following table, PercentAvailSysResources is set to 25 percent on a system with 4 GB of memory. In other words, 1 GB of memory has been allotted to the Domino server.
Program name | Kernal text/data 256 MB | User text 256 MB | User stack 256 MB | Process heap 512 MB | Shared memory 2048 MB | Shared lib text | Unavailable segment | Shared lib data |
---|---|---|---|---|---|---|---|---|
Server | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
HTTP | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
Update | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
N/A | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
Process stack | Process private data | Domino shared memory | Third-party API application shared memory | |||||
256 MB | 512 MB | 2028 MB | 0 MB |
This is the layout of the shared memory:
In this configuration, the setting of the NSF Buffer Pool used 3/8 * (RAM * .25). There is no defined limit to the growth of Domino shared memory other than the operating system imposed limit of segments.
The next table shows the results of setting NSF_BUFFER_POOL_SIZE_MB= 512 and PercentAvailSysResources=25 in the Notes.ini file.
Program name | Kernal text/data 256 MB | User text 256 MB | User stack 256 MB | Process heap 512 MB | Shared memory 2048 MB | Shared lib text | Unavailable segment | Shared lib data |
---|---|---|---|---|---|---|---|---|
Server | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
HTTP | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
Update | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
N/A | 1 | 2 | 3 | 4 and 5 | 6 to 13 | 14 | 15 | 16 |
Process stack | Process private data | Domino shared memory | Third-party API application shared memory | |||||
256 MB | 512 MB | 2028 MB | 0 MB |
This is the layout of the shared memory:
In this configuration, the setting of the NSF Buffer Pool is directly configured, and the PercentAvailSysResources is ignored. There is no defined limit to the growth of Domino shared memory other than the operating system imposed limit of segments.
We recommend that you do not use any form of ConstrainedSHMSizeMB. In the currently used AIX large memory model, ConstrainedSHMSizeMB should be used only to support third-party applications that require shared memory. If you use it, then Lotus Domino has less virtual address space to use. This is unlike all other Domino supported platforms. On other platforms, using ConstrainedSHMSizeMB to reduce the shared memory automatically increases the amount of private data space for the application.
To illustrate, here's an example: The Domino server is running a very heavy Lotus Domino Web Access HTTP load that requires 1024 MB of private data space. On AIX, you use dataseg –f 4 * in the Domino program directory to enable all Domino program files to use four segments of private memory. On other platforms, you need to use the operating system imposed virtual address space size. Then you subtract the space used for program text and shared library text. This gives you the amount of virtual data space available to Lotus Domino. In this example, you subtract the 1024 MB from the virtual data space available to Lotus Domino and use this for the ConstrainedSHMSizeMB setting.
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |