AIX® Platform Notes
The default settings of several AIX® parameters can adversely affect performance. The settings and recommendations are detailed for the following:
I/O Pacing Parameters
AIX® implements an I/O pacing algorithm that may hinder InterSystems IRIS write daemons. In AIX® 5.2 and AIX® 5.3, I/O pacing is automatically enabled when using HACMP clustering; beginning in AIX® 6.1, however, I/O pacing is enabled on all systems and the default high-water mark is set higher than in earlier releases.
If write daemons are slowing or stalling, you may have to adjust the high-water mark; for information, see Disk-I/O PacingOpens in a new tab in the IBM AIX documentation.
Beginning in AIX® 6.1, you should not have to make any high-water mark adjustments.
If you have questions about the impact to your system, however, contact the InterSystems Worldwide Response Center (WRC)Opens in a new tab or your AIX® supplier before making any changes. These recommendations apply to both JFS and Enhanced JFS (JFS2) file systems.
File System Mount Option
Different mount options may improve performance for some workloads.
Non-InterSystems IRIS workloads that benefit from file system caching (for example, operating system-level backups and/or file copies) are slowed by the cio mount option.
To improve recovery speed using the IRIS.WIJ file after a hard shutdown or system crash, InterSystems recommends a mount option that includes file system buffering (for example, rw) for the file system that contains the IRIS.WIJ file.
For information about mount options, see mount CommandOpens in a new tab in the IBM AIX documentation.
Memory Management Parameters
The number of file systems and the amount of activity on them can limit the number of memory structures available to JFS or JFS2, and delay I/O operations waiting for those memory structures.
To monitor these metrics, issue a vmstat -vs command, wait two minutes, and issue another vmstat -vs command. The output looks similar to the following:
# vmstat -vs
1310720 memory pages
1217707 lruable pages
144217 free pages
1 memory pools
106158 pinned pages
80.0 maxpin percentage
20.0 minperm percentage
80.0 maxperm percentage
62.8 numperm percentage
764830 file pages
0.0 compressed percentage
0 compressed pages
32.1 numclient percentage
80.0 maxclient percentage
392036 client pages
0 remote pageouts scheduled
0 pending disk I/Os blocked with no pbuf
5060 paging space I/Os blocked with no psbuf
5512714 filesystem I/Os blocked with no fsbuf
194775 client filesystem I/Os blocked with no fsbuf
0 external pager filesystem I/Os blocked with no fsbuf
If you see an increase in the following parameters, increase the values for better InterSystems IRIS performance:
-
pending disk I/Os blocked with no pbuf
-
paging space I/Os blocked with no psbuf
-
filesystem I/Os blocked with no fsbuf
-
client filesystem I/Os blocked with no fsbuf
-
external pager filesystem I/Os blocked with no fsbuf
When increasing these parameters from the default values:
-
Increase the current value by 50%.
-
Check the vmstat output.
-
Run vmstat twice, two minutes apart.
-
If the field is still increasing, increase again by the same amount; continue this step until the field stops increasing between vmstat reports.
Change both the current and the reboot values, and check the vmstat output regularly because I/O patterns may change over time (hours, days, or weeks).
See the following IBM web pages for more detailed information:
-
For a complete description of each of the fields reported by vmstat, see vmstat CommandOpens in a new tab in the IBM AIX documentation.
-
For instructions on how to increase these parameters, see VMM page replacement tuningOpens in a new tab in the IBM AIX documentation.
-
For a complete description of managing I/O tunable parameters, see ioo CommandOpens in a new tab in the IBM AIX documentation.
AIX® Tunable Parameters
AIX® Interprocess Communication Tunable Parameters
The following table lists the tunable parameters for the IBM pSeries AIX® 5.2 operating system. None of the following listed parameters require tuning because each is dynamically adjusted as needed by the kernel. For more information, see Interprocess communication tunable parametersOpens in a new tab in the AIX documentation.
Parameter | Purpose | Dynamic Values |
---|---|---|
msgmax | Specifies maximum message size. | Maximum value of 4 MB |
msgmnb | Specifies maximum number of bytes on queue. | Maximum value of 4 MB |
msgmni | Specifies maximum number of message queue IDs. | Maximum value of 4096 |
msgmnm | Specifies maximum number of messages per queue. | Maximum value of 524288 |
semaem | Specifies maximum value for adjustment on exit. | Maximum value of 16384 |
semmni | Specifies maximum number of semaphore IDs. | Maximum value of 4096 |
semmsl | Specifies maximum number of semaphores per ID. | Maximum value of 65535 |
semopm | Specifies maximum number of operations per semop() call. | Maximum value of 1024 |
semume | Specifies maximum number of undo entries per process. | Maximum value of 1024 |
semvmx | Specifies maximum value of a semaphore. | Maximum value of 32767 |
shmmax | Specifies maximum shared memory segment size. | Maximum value of 256 MB for 32-bit processes and 0x80000000u for 64-bit |
shmmin | Specifies minimum shared-memory-segment size. | Minimum value of 1 |
shmmni | Specifies maximum number of shared memory IDs. | Maximum value of 4096 |
maxuproc
maxuproc, which specifies the maximum number of processes than can be started by a single nonroot user, is a tunable parameter that can be adjusted as described in this subsection.
If this parameter is set too low then various components of the operating system can fail as more and more users attempt to start processes; these failures include loss of CSP pages, background tasks failing, etc. Therefore, you should set the maxuproc parameter to be higher than the maximum number of processes that might be started by a nonroot user (including interactive users, web server processes, and anything that might start a process).
Do not set the value excessively high because this value protects a server from a runaway application that is creating new processes unnecessarily; however, setting it too low causes unexplained problems.
InterSystems suggests that you set maxuproc to be double your expected maximum process count which gives a margin of error but still provides protection from runaway processes. For example, if your system has 1000 interactive users and often runs 500 background processes, then a value of at least 3000 would be a good choice.
The maxuproc value can be examined and changed either from the command line or from the smit/smitty administrator utilities, both as root user, as follows:
-
From the command line, view the current setting:
# lsattr -E -l sys0 -a maxuproc
then modify the value:
# chdev -l sys0 -a maxuproc=NNNNNN
where NNNNNN is the new value.
-
From the administrator utility smit (or smitty) choose System Environments > Change / Show Characteristics of Operating System > Maximum number of PROCESSES allowed per user.
If you increase the value of maxuproc, the change is effective immediately. If you decrease the value of maxuproc, the change does not take effect until the next system reboot. In both cases the change persists over system reboots.
Required C/C++ Runtime Libraries
You must ensure that the required C/C++ runtime is installed on your IBM AIX® system before installing InterSystems IRIS.
InterSystems IRIS for AIX is compiled using the IBM XL C/C++ for AIX 16.1.x and 17.1.x compilers. If the system on which you are installing InterSystems IRIS does not have the corresponding version of the runtime already installed, you must install it. You can download the latest 16.1.x and 17.1.x runtimes from the Fix list for XL C/C++ Runtime for AIXOpens in a new tab on the IBM Support website.
Shared Library Environment Variable for InterSystems IRIS Shared Library Support
The InterSystems IRIS shared library support contain a batch file that references any installed C linker.
If you have either the standard UNIX® C libraries or any proprietary C libraries defined in the LIBPATH environment variable, then your environment is ready.
If not, append the paths for the standard UNIX® C libraries to LIBPATH; these paths are /usr/lib and /lib.
Use of Raw Ethernet
In order to use Raw Ethernet, an IBM AIX® machine must have the DLPI (Data Link Provider Interface) packages installed. If the machine does not have the DLPI packages, obtain them from your IBM provider and create DLPI devices through the following procedure:
-
Log in as root.
-
In the PSE drivers section of the /etc/pse.conf file, uncomment the four lines that refer to the DLPI drivers.
-
Save the file.
-
Restart the computer.
If the DLPI devices are not installed, the EthernetAddress() method of the %SYSTEM.INetInfoOpens in a new tab class returns a null string rather than information about the Ethernet device.