首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > Lotus Domino > Lotus Domino on AIX memory usage explained > 正文

Lotus Domino on AIX memory usage explained

出处:Notes.net 作者:Notes.net 时间:2006-6-28 14:21:00

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.

Understanding segment layouts

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:

  • The first segment (0x0) is used for kernal text and data.
  • The second segment (0x1) is used for user text.
  • The third segment (0x2) is used for user stack and data.
  • Segments four through thirteen (0x3 to 0xC) are available for user process if either shmat() or mmap() is called.
  • Segment fourteen (0xD) is reserved for shared library text.
  • Segment fifteen (0xE) is available for user process.
  • The last segment (0xF) is used for pre-process shared library data.

For anyone unfamiliar with the terms used in figure 1, here are definitions:

  • Text. Code that is read-only and executable. It can be of three-type kernel code, user code, and shared library code.
  • Data. Read/write data area that can be of three type kernel data, user data, and shared library data.

NOTE: Shmat() and mmap() are used in Lotus Domino to get shared memory.


Figure 1. Virtual address space example
Virtual address space example

Programs that use the AIX large memory model have the following memory layout shown in figure 2:

  • The first segment (0x0) is used for kernal text and data.
  • The second segment (0x1) is used for user text.
  • The third segment (0x2) is used for user stack and data.
  • Segments four through seven (0x3 to 0x6) are reserved by the process heap.
  • Segments eight through thirteen (0x7 to 0xC) are available for user process if either shmat() or mmap() is called.
  • Segment fourteen (0xD) is reserved for shared library text.
  • Segment fifteen (0xE) is available for user process.
  • The last segment (0xF) is used for pre-process shared library data.

Current versions of Lotus Domino use the AIX large memory model.


Figure 2. AIX large memory model
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.


Figure 3. AIX very large memory model: first form
AIX very large memory model: first form

The second form is for programs that have a process heap greater than 2.5 GB as shown in figure 4 in which:

  • Segment one (0x0) is reserved for kernal text and data.
  • Segment two (0x1) is reserved for user text.
  • Segment three (0x2) is used for the user stack. However, shared library text and data are also used in this segment (0x2).
  • Segments four through sixteen (0x3 to 0xF) are available for the user heap if used by dynamic segment allocation.
  • Segments 0xB to 0xF are available for the user process if shmat() or mmap() is called by dynamic segment allocation.

Figure 4. AIX very large memory model: second form
AIX very large memory model: second form

The third form is for programs that have a process heap less than 256 MB (see figure 5). In this form:

  • The first segment (0x0) is used for kernal text and data.
  • The second segment (0x1) is used for user text.
  • The third segment (0x2) is used for user stack and data. However, shared library text and data may also be stored in this segment.
  • The rest of the segments (0x3 to 0xF) are available for the user process is shmat() or mmap() is called by dynamic segment allocation.

Figure 5. AIX very large memory model: third form
AIX very large memory model: third form


Back to top


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 name. This is an example of a typical Domino application.
  • Kernal text and data. This memory is shared.
  • User text. This memory is shared for all programs with the same executable file (for example, three update tasks use only one chunk of memory shared between the three tasks.)
  • User stack. This segment is unique to each process.
  • Process heap. This segment is unique to each process.
  • Shared memory. This segment is shared by all Domino processes.
  • Shared library text. This segment is shared by all processes on the system.
  • Unavailable segment. This segment is currently unusable by Lotus Domino.
  • Shared library data. This segment is unique to each process.
  • Non-Domino. This segment is shared and used by third-party applications.

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 nameKernal text/data
256 MB
User text
256 MB
User stack
256 MB
Process heap
512 MB
Shared memory
2 GB
Shared lib textUnavailable segmentShared lib data
Server1234 and 56 to 13141516
HTTP1234 and 56 to 13141516
Update1234 and 56 to 13141516
N/A1234 and 56 to 13141516
Process stackProcess private dataDomino shared memoryThird-party API application shared memory
256 MB 512 MB2048 MB0 MB

This is the layout of the shared memory:

  • NSF Buffer Pool (UBM=3/8 shm) = 750 MB
  • Other Domino shared memory = 1250 MB

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 nameKernal 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 textUnavailable segmentShared lib data
Server1234 and 56 to 1213141516
HTTP1234 and 56 to 1213141516
Update1234 and 56 to 1213141516
N/A1234 and 56 to 1213141516
Process stackProcess private dataDomino shared memoryThird-party API application shared memory
256 MB 512 MB1744 MB256 MB

This is the layout of the shared memory:

  • NSF Buffer Pool (UBM=3/8 shm) = 654 MB
  • Other Domino shared memory = 1099 MB

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 nameKernal text/data
256 MB
User text
256 MB
User stack
256 MB
Process heap
768 MB
Non-Domino
1.744 GB
Shared lib textUnavailable segmentShared lib data
Server1234 to 67 to 13141516
HTTP1234 to 67 to 13141516
Update1234 to 67 to 13141516
N/A1234 to 67 to 13141516
Process stackProcess private dataDomino shared memoryThird-party API application shared memory
256 MB 768 MB1744 MB0 MB

This is the layout of the shared memory:

  • NSF Buffer Pool (UBM=3/8 shm) = 654 MB
  • Other Domino shared memory = 1099 MB

In the following table, ConstrainedSHMSizeMB is set to 1024 MB.

Program nameKernal 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 textUnavailable segmentShared lib data
Server1234 and 56 to 910 to 13141516
HTTP1234 and 56 to 910 to 13141516
Update1234 and 56 to 910 to 13141516
N/A1234 and 56 to 910 to 13141516
Process stackProcess private dataDomino shared memoryThird-party API application shared memory
256 MB 512 MB1024 MB1024 MB

This is the layout of the shared memory:

  • NSF Buffer Pool (UBM=3/8 shm) = 384 MB
  • Other Domino shared memory = 640 MB

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 nameKernal text/data
256 MB
User text
256 MB
User stack
256 MB
Process heap
512 MB
Shared memory
2048 MB
Shared lib textUnavailable segmentShared lib data
Server1234 and 56 to 13141516
HTTP1234 and 56 to 13141516
Update1234 and 56 to 13141516
N/A1234 and 56 to 13141516
Process stackProcess private dataDomino shared memoryThird-party API application shared memory
256 MB 512 MB2028 MB0 MB

This is the layout of the shared memory:

  • NSF Buffer Pool (UBM=3/8 shm) = 384 MB
  • Other Domino shared memory = 1664 MB

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 nameKernal text/data
256 MB
User text
256 MB
User stack
256 MB
Process heap
512 MB
Shared memory
2048 MB
Shared lib textUnavailable segmentShared lib data
Server1234 and 56 to 13141516
HTTP1234 and 56 to 13141516
Update1234 and 56 to 13141516
N/A1234 and 56 to 13141516
Process stackProcess private dataDomino shared memoryThird-party API application shared memory
256 MB 512 MB2028 MB0 MB

This is the layout of the shared memory:

  • NSF Buffer Pool (UBM=3/8 shm) = 512 MB
  • Other Domino shared memory = 1536 MB

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.





Recommendation

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.

相关文章 热门文章
  • IBM Lotus Domino iCalendar邮件地址解析栈溢出漏洞
  • IBM Lotus Notes Traveler多个安全漏洞
  • IBM Lotus Mobile Connect跨站脚本执行漏洞
  • 现有 IBM Lotus Domino/Notes 邮件模板简介
  • 在 Lotus Notes 中设置邮件定时发送的方法及代理功能介绍
  • IBM Lotus Connections多个安全漏洞
  • IBM Lotus Notes SURunAs.exe明文存储口令漏洞
  • IBM Lotus Domino 8.5 服务器管理入门手册
  • IBM Lotus Notes names.nsf开放重新定向漏洞
  • IBM Lotus Domino LDAP请求远程堆溢出漏洞
  • IBM Lotus Domino readme.nsf页面远程跨站脚本漏洞
  • IBM Lotus Notes远程栈溢出漏洞
  • Domino管理员29个问题
  • Lotus Domino/Notes如何有效防止垃圾邮件
  • 配置Domino服务器
  • Lotus Notes常见问题答疑
  • Lotus Notes安装和使用的常见问题
  • Lotus Notes 的最终用户最需知道的十件事
  • 如何提高Domino服务器性能
  • LOTUS NOTES .INI文件参数设置秘籍
  • Domino 做Internet企业邮局的配置
  • Domino SMTP邮件服务器设置实例
  • 基于Linux平台的Domino Server安装与配置
  • 如何配制Domino for IIS?
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    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营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号