Skip to end of metadata
Go to start of metadata

Overview

This document provides guides for setting appropriate values and various user environment settings of kernel parameters for installing and operating Altibase in the AIX (Advanced Interactive eXecutive) Operating System.

In this document, the guide is presented only for operating system related items to be set before Altibase is installed. 

Kernel Parameters

When operating Altibase on the AIX OS, it describes the types of kernel parameters that need to be changed, and why the settings need to be changed, and introduces how to change the kernel parameters.

For details related to each kernel parameter, refer to the guide provided by IBM.

Posix AIO

Posix AIO is a kernel parameter in AIX that allows a process to simultaneously process disk I/O processing and application program operations, resulting in improved performance.

If the corresponding kernel parameter is not set, Altibase cannot be used, so it must be set in advance.

However, starting from AIX 6.1, the default value of Posix AIO is 'Available', there is no need to set it separately.

File Cache

This kernel parameter is not an essential element to change, but the proper file cache setting prevents the swap out of the memory area used by Altibase and suppresses the requirement for swap out. It is recommended to minimize the phenomenon that the I/O delay time leads to the degradation of Altibase.

For reference, there are no relevant parameters under AIX 5.2 ML03, and there is no change starting from AIX 6.1 so it is not necessary to refer to it depending on the operation system version.

File cache is a kind of system buffer managed at the operating system level to solve the bottleneck caused by the speed difference between main memory and auxiliary memory. These file caches are managed by unique policies of each operating system, but commonly have a direct correlation with the swap policy.

Swapping itself has the usefulness of handling applications or data files larger than main memory, but in systems where long-term resident applications such as DBMS are operated, the disk I/O delay of the operating system layer due to swapping since the response time of the DBMS may be irregular or delayed with time. So file cache is a consideration factor depending on the system use.

Therefore, in order to guarantee Altibase's consistent response time, it is recommended to set the file cache and swap-related kernel parameters in advance so that swap does not occur as much as possible.

Configuration on AIX

The default memory manager of AIX is to convert unused memory areas to file cache as much as possible.

In this state, if an additional memory allocation requso if the system does noest occurs and there is insufficient free memory, the process swaps out the memory being used or the area that is not often accessed from the file cache area, and then allocates it.

At this time, when a transaction approaching the swapped out area occurs, the performance is not uniform.

In this way, the process by which the memory manager acquires the memory requested by the process or the file cache in order to allocate additional memory is called stealing. The stealing target can be specified by the file cache-related kernel parameter lru_file_repage.

Generally, three kernel parameters are changed as well as lru_file_repage.

Kernel ParameterRecommended ValueRemark
minperm10%-
lru_file_repage0Supported in AIX 5.2 ML5, AIX 5.3 ML2 or later
strict_maxclient0Supported in AIX 5.2 ML4 or later

When set as above, stealing occurs only in the file cache when the file cache share compared to the total memory is used above minperm.

Since this setting can be checked during AIX operation, if performance or other problems occur, it is recommended to change it in consultation with AIX engineers.

Resource Limitations

In the case of AIX, some of the resource limit items are set through the following kernel parameter changes, not the user configuration file setting using ulimit, which is commonly uand the soft-limit means that the hard-limit can sed.

Altibase is a single-process, multi-thread-based application program, so if the system does not have any application programs other than Altibase, there is no need to specifically consider the number of process limits per user. In some cases, it may be necessary to appropriately expand the limit on the number of processes per user by predicting the number.

The relevant kernel parameters are as follows.

Kernel ParameterDescriptionRecommended Value
Maximum number of PROCESSES allowed per userThe number of processes that can be created per userMore than the number of processes that can be running simultaneously

How to Change

To change the kernel parameters related to file cache, use the virtual memory-related kernel utility emo, and for other changes, describe the method using the system kernel-related utility smit.

Generally, the user needs to connect to the root account, and it is recommended to restart the system after changing to properly apply even the kernel parameters applied in real-time.

Posix AIO

After running smit, move the items in the order of "Devices", "Asynchronous I/O" to change the 'Defined' state of "Configured Defined Asynchronous I/O" to 'Available'.

However, if only this process is performed, the following process must be performed as the previous Posix AIO setting may be reset when the system is restarted.

After running smit, move the items in the order of “Devices”, “Asynchronous I / O”, “Posix Asynchronous I / O”, and “Change / Show Characteristics of Asynchronous I / O”, change the item of “STATE to be configured at system restart” to Available.

The current configuration of AIO-related kernel parameter can be checked as follows.

Check AIO related kernel parameter settings
File Cache

The change method is as follows.

How to change file cache

The confirmation method is as follows.

How to check file cache
Resource Limitation

After running smit, move to "System Environments", "Change/Show Characteristics of Operating System", and change the "Maximum number of PROCESSES allowed per user" value to the number of processes that can be run simultaneously.

User Settings

This describes resource limits, environment variables, and various environment settings of user accounts in the system for operating Altibase in the AIX OS.

For instructions and specifics related to configuration, refer to the guide provided by IBM.

Resource Limitations

In the UNIX operating system, logical limits are set for available resources on a user account basis. Among the resource limit items, the items that need to be expanded for stable service operation as follows.

ClassificationDescriptionRecommended Value
data seg size(data)The maximum size of one process data areaunlimited
file size (size)The maximum size of files that can be createdunlimited
open files (nofiles)The maximum number of files that can be accessed simultaneously by one processunlimited
max memory size (rss)The maximum size of available memoryunlimited
virtual memory (memory)The maximum size of available virtual memoryunlimited
max user processThe number of processes that can be created per userunlimited

It is intended to remove problems that may occur due to logical limitations even when there are abundant physical resources when expanding the memory and data file area used by a specific user. This setting has no effect on other processes. It is recommended to set the maximum value allowed by (unlimited if possible).

For example, the meaning of open files includes not only the files accessed by the process, but also the number of communication sockets. If Altibase is operated in an environment where this value is limited to 10, it means that more than 10 sessions can be accessed simultaneously. (Considering the file used by Altibase, there may not be an accessible session.)

To change the method, edit the environment configuration file using, the ulimit command, edit the system resource configuration file, or use the kernel-related utilities provided for each operating system.

Hard-Limit & Soft-Limit

Resource limit values are divided into the concept of hard-limit and soft-limit. The hard-limit means the maximum value of kernel-level resource limit that cannot be changed except the system administrator account (root), and the soft-limit means that the current user account can change up to the hard-limit. (refer to the ulimit -S/-H option for details.)

The soft-limit is effective while the user maintains a session by accessing it, and changes are immediately reflected. However, when other sessions of the same user account are connected, the existing soft-limit is reflected, so the ulimit command is often added to the user account configuration file.

However, this method may not be intended due to the global hard-limit, so it is recommended to systematically apply it through editing system-wide resource configuration files rather than applying user account units using environment configuration files.

For reference, the system configuration file related to the user resource limit in AIX is /etc/security/limits.

Environment Variables

Setting for Multi-Threaded Applications

Separate environment variables need to be set for Altibase, a multi-thread based application program. For reference, this document mentions only representative ones, but it should be noted that all environment variables related to multi-threads supported by AIX need to be considered.

The following items are recommended environment variables to prevent performance degradation in multi-threaded SMP systems.Altibase can be operated without setting the environment variable, but must be set because failures may occur due to unknown causes.

Environment VariableDescription
AIXTHREAD_MNRATIOThe number of k kernel threads for processing n user threads
AIXTHREAD_SCOPESets the thread model to 1:1
AIXTHREAD_MUTEX_DEBUG
Set to remove the overhead  of the pthread library due to the mutex / condition variable in use / read/write lock management used by the debugger.
AIXTHREAD_RWLOCK_DEBUG
AIXTHREAD_COND_DEBUG
SPINLOOPTIMEThe number of attempts to acquire a lock in the state of CPU resource acquisition
YIELDLOOPTIMEThe number of times to yield CPU resources while holding lock
MALLOCMULTIHEAPSets up in a multi-threaded environment that uses a lot of malloc
AIXTHREAD_MUTEX_FASTThis is an option to change the internal mutex_locking operation method of the operating system. If mutex_contention is severe, set it to ON to improve performance. It is provided in AIX 5.2 and later.

More information on environmental variables can be found on the IBM website.


Summary

For stable operation of Altibase on the AIX operating system, kernel parameter settings and user environment settings must be performed in advance. If the setting is not performed properly, it should be noted that the problem can be caused by each limit value even though the system has sufficient resources.

Setting Examples

Kernel Parameters

Refer to the table below and set the appropriate kernel parameters. For reference, in AIX, some of the resource limit items are adjusted by changing kernel parameters.

ClassificationKernel ParameterRecommended ValueRemark
Posix AIOConfigure Defined Asynchronous I/OAvailableRequired under AIX 6.1
File Cachelru_file_repage0Considered under AIX6.1 (Requires lru_file_repage) 
strict_maxclient0
minperm10
Resource limitationThe maximum number of PROCESSES allowed per userMore than the number of processes that can be running simultaneouslyCorresponds to max user process

User Resource Limits

Refer to the table below, if possible, set it to unlimited.

ClassificationDescriptionRecommended Value
data seg size(data)The maximum size of the process data areaunlimited
file size (fsize)The maximum size of the created fileunlimited
open files (nofiles)The maximum number of files that can be accessed by one process at the same timeunlimited
max memory size (rss)The maximum size of available memoryunlimited
max user processThe number of processes that can be created per userMaximum number of PROCESSES allowed per user

User Environment Variables

In the case of sh, bash, and ksh, examples of settings required environment variables using the environment setting file are as follows. In the case of csh, it is declared through a shell command such as setenv instead of export.

User Environment Variable Setting Examples

For reference, in the case of ksh, an error may occur when defining another environment variable using the environment variable with it being predefined.

 

Enclosure

AIX Memory Related Patches

There is a bug that can cause a memory leak in the heapmin function provided by the AIX platform.

Related IBM official document is as follows.

http://www-01.ibm.com/support/docview.wss?uid=swg1IV28577

As a measure of this, the user must patch or upgrade to the AIX native compiler where AIX bug IV28577 is resolved.

It can be checked whether or not the patch is done with the following command.

Check heapmin Related Patch

If there is no patch, no value is displayed. It is recommended to perform patch or upgrade through AIX engineer.

In addition, it is recommended to apply the latest patch to avoid various problems known in AIX.

Limit of the Number of IPC Channels

Among the semaphore parameters of AIX, the semume value basically limits the number of semaphore undo entries. It is automatically set in AIX and set to 1024, and cannot be changed by the user.

Altibase uses undo entries to ensure resources between IPC connections, and from Altibase 5.1.5.72 or later, undo entries for each IPC channel have been changed from the previous two to use three.

Since the semume (number of undo entry resources) is fixed at 1024, Altibase uses 2 or 3 undo entries per IPC channel based on version 5.1.5.72, so the maximum number of IPC channels that can be used is limited.

Therefore, the maximum number of IPC channels that can be used for each version is as follows:

  • Up to 512 IPC channels (= 1024/2) can be used under 5.1.5.72 version

  • Up to 341 IPC channels (= 1024/3) can be used in 5.1.5.72 or later



  • No labels