System Configuration
This appendix details the modifications that must be made to certain kernel parameters and operating environments in order to ensure that sufficient resources are allocated to the server. It also details issues in server configuration that must be considered in order to support certain special operating environments such as Solaris clusters.
The UNIX system parameters that need adjustment are used to control resource consumption on a user-, process-, or system-wide basis. In the case of either a user or a process parameter, the new value for the parameter should be the existing value or the calendar server requirement, whichever is larger. In the case of a system-wide parameter, the server requirement must be added to the existing value to calculate a new value.
Assume that Corporate-Wide
Services is disabled. Observe that in extreme situations (i.e. power failure),
all server sessions will be terminated in rapid succession. Thus, in the worst
case, the maximum number of simultaneous log-ons and log-offs can be as large
as [LCK] lck_users. The
server therefore requires at least the following resources:
|
parameter
description |
new value |
|
max. number of concurrent processes per user-id: |
[ 2( |
|
soft file limit per process: |
[ |
|
hard file limit per process: |
[ |
|
max. number of concurrent processes: |
[ 2( |
|
max. number of open files: |
[ |
|
* limitations for this parameter only apply if the calendar server runs as the user "unison" ** If you have not specified a value for the parameter |
|
If Corporate-Wide Services is enabled, further resources are required:
The total resource requirements when Corporate-Wide Services are enabled:
|
parameter
description |
new value |
|
soft file limit per process: |
[ |
|
hard file limit per process: |
[ |
|
max. number of concurrent processes per user-id: |
[ 2( |
|
max. number of concurrent processes: |
[ 2( |
|
max. number of open files: |
[ ( |
|
* limitations for this parameter only apply if the calendar server runs as the user "unison" |
|
Finally, consider the message and semaphore resource requirements of the server, which are independent of Corporate-Wide Services:
|
parameter
description |
requirement |
|
max. number of message queue identifiers: |
[ |
|
max. number of message headers: |
[ |
|
max. number of semaphore identifiers: |
[ 1 ] semaphore identifier (system-wide) |
|
max. number of semaphores: |
[ 1 ] semaphore (system-wide) |
|
message segment size |
64 bytes |
|
* This formula presumes that each calendar server message fits into a single message segment. A message can vary in length between 56 and 114 bytes. |
|
The memory allocation in
bytes as related to the Lock Manager daemon (unilckd):
400 Kb * lck_usersA final comment concerning
the uniengd daemon/service:
this executable has been compiled (cc)
in share mode (-n) insuring
that all concurrently executing copies of uniengd
share a single instruction section (sometimes called "Program text
segment") to save memory.
|
Note: The system clock must be running and properly set. |
The following section describes the maximum kernel requirements, and as such should apply to most HP-UX installations. All parameters can be modified via SAM, a menu-based system administration manager.
The assumption is that
Corporate-Wide Services is enabled, and that less than 30 nodes are present on
the host. The assumptions concerning the server unison.ini file parameters are:
[DB] db_files = 30[SYS] sys_owner = unison[LCK] lck_users = NIn the "NEW setting" column below, the "max" function returns the larger of the two arguments, and the "min" function returns the smaller of the two arguments.
|
Kernel Parameter |
Parameter
Description |
OLD setting |
Calendar server
requirement |
NEW setting |
|
maxfiles |
soft file limit per process |
X |
40 |
max(40,X) |
|
maxfiles_lim |
hard file limit per process |
X |
40 |
max(40,X) |
|
maxuprc |
max. number of concurrent processes per user-ID |
X |
2*N+20 |
max((2*N+20),X) |
|
nproc |
max. number of concurrent processes |
X |
2*N+20 |
(2*N+20)+X |
|
nfile |
max. number of open files |
X |
35*N+75 |
(35*N+75)+X |
|
msgmni |
max. number of message queue identifiers |
X |
N + 1 |
N + 1 + X |
|
msgssz |
size of message segments |
X |
144 |
max(144,X) |
|
msgmnb |
max total size of all messages in a queue simultaneously |
X |
min(65535, (msgssz * lck_users) ) |
min(65535, (msgssz * lck_users) + X) |
|
msgtql |
max. number of message headers |
X |
N + 1 |
N + 1 + X |
|
semmni |
max. number of semaphore identifiers |
X |
1 |
1 + X |
|
semmns |
max. number of semaphores |
X |
1 |
1 + X |
The following is an actual example involving 500 users:
[DB] db_files = 30[SYS] sys_owner = unison[LCK] lck_users = 500
|
Kernel Parameter |
Parameter Description |
OLD setting |
Calendar server
requirement |
NEW setting |
|
maxfiles |
soft file limit per process |
X |
40 |
max(40,X) |
|
maxfiles_lim |
hard file limit per process |
X |
40 |
max(40,X) |
|
maxuprc |
max. number of concurrent processes per user-ID |
X |
1020 |
max((1020),X) |
|
nproc |
max. number of concurrent processes |
X |
1020 |
1020+X |
|
nfile |
max. number of open files |
X |
17575 |
17575+X |
|
msgmni |
max. number of message queue identifiers |
X |
N |
N + X |
|
msgssz |
size of message segments |
X |
144 |
max(144,X) |
|
msgmnb |
max total size of all messages in a queue simultaneously |
X |
min(65535, (msgssz * lck_users) ) |
min(65535, (msgssz * 500) + X) |
|
msgtql |
max. number of message headers |
X |
N |
N + X |
|
semmni |
max. number of semaphore identifiers |
X |
1 |
1 + X |
|
semmns |
max. number of semaphores |
X |
1 |
1 + X |
Solaris provides tunable
parameters for the kernel and kernel modules. While normally you should not
need to change these parameters, there are special circumstances under which it
is necessary. Under Solaris, kernel parameters are modified by directly editing
the /etc/system file with a
standard text editor. All of the parameters are set using the following syntax:
set maxuprc=2641
set max_nprocs=2636
In addition, the message queue and semaphore parameters must include the name of the specific module to be modified. The syntax is as follows:
set msgsys:msginfo_msgmni=351
set semsys:seminfo_semmni=345
In order for the above changes to take effect, reboot the system.
To see a complete list of
the tunable kernel parameters, run the nm
command on the appropriate module. For example:
% /usr/ccs/bin/nm/kernel/genunix
To see the current values
assigned to the kernel parameters, use the sysdef
command. For example:
% sysdef -i
The assumption is that
Corporate-Wide Services is enabled, and that less than 30 nodes are present on
the host. The assumptions concerning the unison.ini
parameters are:
[DB] db_files = 30[SYS] sys_owner = unison[LCK] lck_users = NIn the columns below, the "max" function returns the larger of the two arguments.
|
Kernel Parameter |
Parameter
Description |
OLD setting |
Calendar server
requirement |
NEW setting |
|
rlim_fd_cur |
soft file limit per process |
X |
40 |
max(40,X) |
|
rlim_fd_max |
hard file limit per process |
X |
max(db_files + 10, number of nodes + 11) |
max(X, db_files + 10, number of nodes + 11) |
|
maxuprc |
max. number of concurrent processes per user-ID |
X |
2*N+20 |
max((2*N+20),X) |
|
max_nproc |
max. number of concurrent processes |
X |
2*N+20 |
(2*N+20)+X |
|
msgsys:msginfo_msgmni |
max. number of message queue identifiers |
X |
2*N |
(2*N) + X |
|
msgsys:msginfo_msgtql |
max. number of message headers |
X |
N |
N + X |
|
msgsys:msginfo_msgssz + |
size of message segments |
X |
144 |
max(144,X) |
|
msgsys:msginfo_msgmnb |
number of bytes in any message queue |
X |
msgssz * N |
(msgssz * N) + X |
|
msgsys:msginfo_msgseg + |
maximum message segments in all queues |
X |
N |
N + X |
|
msgsys:msginfo_msgmap + |
Number of free space resource map entries |
X |
N |
N + X |
|
semsys:seminfo_semmni |
max. number of semaphore identifiers |
X |
1 |
1 + X |
|
semsys:seminfo_semmns |
max. number of semaphores |
X |
1 |
1 + X |
|
+ Available on Solaris 2.6 and 7 only. |
||||
The maximum number of open files is unlimited under Solaris, and therefore does not need to be set.
The following is an example with 500 users:
Number of nodes = 3[DB] db_files = 30[SYS] sys_owner = unison[LCK] lck_users = 500
|
Kernel Parameter |
Parameter
Description |
OLD setting |
Calendar server
requirement |
NEW setting |
|
rlim_fd_cur |
soft file limit per process |
X |
40 |
max(40,X) |
|
rlim_fd_max |
hard file limit per process |
X |
max(40, 14) |
max(X, 40, 14) |
|
maxuproc |
max. number of concurrent processes per user-ID |
X |
1020 |
max(1020,X) |
|
max_nproc |
max. number of concurrent processes |
X |
1020 |
1020+X |
|
msginfo_msgmni |
max. number of message queue identifiers |
X |
2*N |
(2*N) + X |
|
msginfo_msgtql |
max. number of message headers |
X |
N |
N + X |
|
msgsys:msginfo_msgssz + |
size of message segments |
X |
144 |
max(144, X) |
|
msgsys:msginfo_msgmnb |
number of bytes in any message queue |
X |
msgssz * N |
(msgssz * N) + X |
|
msgsys:msginfo_msgseg + |
maximum message segments in all queues |
X |
N |
N + X |
|
msgsys:msginfo_msgmap + |
Number of free space resource map entries |
X |
N |
N + X |
|
seminfo_semmni |
max. number of semaphore identifiers |
X |
1 |
1 + X |
|
seminfo_semmns |
max. number of semaphores |
X |
1 |
1 + X |
|
+ Available on Solaris 2.6 and 7 only. |
||||
Unlike many other UNIX operating systems, AIX does not provide the ability to directly configure most kernel parameters. Instead, the AIX kernel dynamically allocates and reallocates resources as they are needed (up to a predefined limit).
For calendar server
installations, the only kernel parameter that should be altered is maxuproc (maximum number of processes
per user-ID), which can be modified via SMIT (AIX's menu-based system
administration utility) or the command line utility chdev.
To see a complete list of
the parameters and their current values, run the lsattr command:
% /etc/lsattr -E -l sys0
To see the current values
assigned to a particular kernel parameter, use the lsattr command with the parameter name.
For example:
% /etc/lsattr -E -l sys0 -a maxuproc
To change the value of the
maxuproc parameter, use the chdev command. For example:
% /etc/chdev -l sys0 -a maxuproc = 200
As stated above, the AIX kernel dynamically allocates and reallocates resources as they are needed up to a predefined limit. The known limits of the parameters are as follows:
|
Kernel Parameter
Description |
Upper Limit |
|
soft file limit per process |
2000 |
|
hard file limit per process |
2000 |
|
max. number of concurrent processes per user-id: |
configurable, cannot exceed 131,072 |
|
max. number of concurrent processes on the system |
131,072 |
|
max. number of open files |
200000 |
|
max. number of message queue identifiers |
4096 |
|
max. number of message headers |
unlimited; 8192 per message queue. |
|
max. number of semaphore identifiers |
4096 |
|
max. number of semaphores |
unlimited; 65535 per semaphore id. |
The practical limits of
the server, defined as the maximum number of concurrent users on a system, are
effectively determined by the upper limits of the maximum number of open files.
Assuming there are no other activity or resource requirements on the system,
the maximum number of concurrent users (lck_users)
under AIX is approximately 10000*20+60=200060.
Modify your Tru64 kernel
parameters using the /usr/bin/X11/dxkerneltuner
utility. Editing the "Current Value" field will apply changes only
until the system is rebooted; editing the "Boot Time Value" field
will apply changes permanently at the next boot. Altering both values will
apply the changes both immediately and permanently.
For information on
command-line utilities for kernel adjustment, consult the relevant
documentation on the /sbin/sysconfig
and /sbin/sysconfigdb
commands.
The assumption is that
Corporate-Wide Services is enabled, and that less than 30 nodes are present on
the host. The assumptions concerning the unison.ini
parameters are:
[DB] db_files = 30[SYS] sys_owner = unison[LCK] lck_users = NIn the "NEW setting" column below, the "max" function returns the larger of the two arguments.
|
Kernel Parameter |
Parameter
Description |
OLD setting |
Calendar server
requirement |
NEW setting |
|
PROC/open-max-soft |
soft file limit per process |
X |
40 |
max(40,X) |
|
PROC/open-max-hard |
hard file limit per process |
X |
40 |
max(40,X) |
|
PROC/max_proc_per_user |
max. number of concurrent processes per user-ID |
X |
2*N+20 |
max((2*N+20),X) |
|
PROC/maxusers |
max. number of concurrent processes |
X |
2*N+20 |
(2*N+20)+X |
|
VFS/max_vnodes |
max. number of open files |
X |
35*N+75 |
(35*N+75)+X |
|
IPC/msg_mni |
max. number of message queue identifiers |
X |
N + 1 |
N + 1 + X |
|
IPC/msg_tql |
max. number of message headers |
X |
N + 1 |
N + 1 + X |
|
IPC/sem_mni |
max. number of semaphore identifiers |
X |
1 |
1 + X |
The following is an actual example involving 500 users:
[DB] db_files = 30[SYS] sys_owner = unison[LCK] lck_users = 500
|
Kernel Parameter |
Parameter
Description |
OLD setting |
Calendar server
requirement |
NEW setting |
|
PROC/open-max-soft |
soft file limit per process |
X |
40 |
max(40,X) |
|
PROC/open-max-hard |
hard file limit per process |
X |
40 |
max(40,X) |
|
PROC/max_proc_per_user |
max. number of concurrent processes per user-ID |
X |
1020 |
max((1020),X) |
|
PROC/maxusers |
max. number of concurrent processes |
X |
1020 |
1020+X |
|
VFS/max_vnodes |
max. number of open files |
X |
17575 |
17575+X |
|
IPC/msg_mni |
max. number of message queue identifiers |
X |
N |
N + X |
|
IPC/msg_tql |
max. number of message headers |
X |
N |
N + X |
|
IPC/sem_mni |
max. number of semaphore identifiers |
X |
1 |
1 + X |
Oracle Calendar server is subject to the default Windows limit on memory size per process (2 Gb). You can improve performance for installations with large numbers of connections (1000 or more) by configuring your Windows kernel to allow processes up to 3 Gb of memory by following the instructions given on Microsoft's Web site at:
http://support.microsoft.com/support/kb/articles/Q171/7/93.ASP
This feature is available for Windows NT Server, Enterprise Edition version 4.0 and greater.
The term "cluster" does not refer to the same concept as a calendar server cluster -- a calendar server cluster is a node network in which one node is designated a "master node" for the purposes of client sign-in, automated registration, etc., while an operating system cluster is considered to be a system in which two or more machines can be used to manage the same data, providing failover capabilities.
In these environments, it
is important to differentiate between the physical host name, which is
the actual host name of a given machine, and the cluster host name,
which is the host name of the cluster containing that machine. If you intend to
use your calendar server in a cluster environment, you should set all
parameters in the unison.ini
file that require the host name of the local host to the cluster host
name. In addition, you must add the [ENG]
calendarhostname parameter
to unison.ini, and set its
value to the cluster host name. Finally, if using an external LDAP directory
server, you must ensure that the [YOURHOSTNAME,
unidas] section specifies the cluster host name in place of YOURHOSTNAME.
If using a node network,
ensure also that your nodes.ini
file uses only cluster host names instead of physical host names, and ensure
that all clients are using the cluster host name to sign in to the calendar
server.
When a machine containing a master node switches over to another machine in the cluster, Oracle Web clients can have difficulty signing in, since master nodes currently identify themselves to clients using physical host names.
For more information on modifying the kernel parameters under Solaris, refer to Administering Security, Performance, and Accounting by Sun Microsystems, Inc.
HP-UX system parameters are described in Appendix A, System Parameters, of the HP-UX manual entitled System Administration Tasks.
For more information on AIX performance tuning and administration, please consult AIX Performance Tuning by IBM, Prentice Hall, 1996.
Information on Tru64 kernel parameters is available in the Compaq Tru64® UnixTM System Configuration and Tuning manual, by Compaq Computer Corporation, 1999.
An excellent source of general information on this topic is System Performance Tuning by Mike Loukides, O'Reilly & Associates, Inc., 1991.