This appendix details the modifications that must be made to certain parameters of the UNIX kernel in order to ensure sufficient resources are allocated to the Calendar Server.
As indicated above, the UNIX system parameters that need adjustment are used to control resource consumption on a per-user, per-process, or system-wide basis. In the case of either a per-user or a per-process parameter, the new value for the parameter should be the larger of the existing value and the Calendar Server requirement. On the other hand, in the case of a system-wide parameter, the Calendar Server requirement must be added to the existing value to calculate the new value.
Begin by assuming that Corporate-Wide Services is disabled. Furthermore, let SONOFF denote the maximum number of simultaneous log-ons and log-offs to the Calendar Server. Observe that under extreme situations, i.e. power failure, all the Calendar Server sessions will be terminated in rapid succession. Hence, in the worst case SONOFF is as large as lck_users. The Calendar Server requires at least the following resources:
If Corporate-Wide Services is enabled, further resources are required:
The total resource requirements when Corporate-Wide Services are enabled are:
Finally, consider the Message and Semaphore resource requirements of the Calendar Server, which are independent of Corporate-Wide services:
The memory allocation in bytes as related to the Calendar Server Lock Manager daemon (unilckd):
One final comment concerning the Calendar Server engine's daemon/servers, uniengd. This executable has been compiled (cc) in share mode (-n) insuring that all the concurrently executing copies of uniengd share a single instruction section (sometimes called "Program text segment"), thus saving memory.
The following describes the maximum kernel requirements, and as such will suffice for most HP-UX installations. All of the above parameters can be modified via SAM, a menu-based system administration manager.
The assumptions concerning the Calendar Server unison.ini file parameters are:
In the NEW column below, the max function returns the maximum of the two entries.
The following is a actual example involving 500 users:
SunOS 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 SunOS, kernel parameters are modified by directly editing the /etc/system file with a standard text editor like vi. All of the parameters are set using the following syntax:
e.g.:
In addition, the message queue and semaphore parameters must include the name of the specific module to be modified. The syntax is as follows:
e.g.:
In order for the above changes to take effect, reboot the system with the `-r' flag.
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/unix
To see the current values assigned to the kernel parameters, use the sysdef command. For example:
% sysdef -i
In the NEW column below, the max function returns the maximum of the two entries.
The following is a actual example involving 500 users:
Unlike many other UNIX operating systems, AIX does not provide the ability to directly configure kernel parameters. Instead, the AIX kernel dynamically allocates and reallocates resources as they are needed (up to a predefined limit), making the traditional practice of tuning parameters unnecessary.
The only tunable kernel parameter is maxuprc (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:
The practical limits of the Calendar 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 is no other activity or resource requirements on the system, the maximum number of concurrent users (lck_users) under AIX is approximately 10000*.
*10000*20+60=200060
To tune the kernel under IRIX, use the systune command to change
parameter values or make the change(s) in the master.d directory
if the variable is not tunable through systune. If the systune
command is used, the new kernel will be automatically created. When the
parameters are changed without using systune, the command autoconfig
must be used to generate a new kernel. As a standard precautionary measure,
always copy the existing kernel to a safe place before you reboot as the
system will overwrite the current kernel (/unix) with the kernel
you have just created (/unix.install).
File/Directory | Purpose |
/var/sysgen/system/* | Directory containing files defining software modules |
/var/sysgen/master.d | Directory containing files defining kernel switches and parameters |
/var/sysgen/mtune/* | Directory containing files defining more tunable parameters |
/var/sysgen/stune | File defining default parameter values. |
/var/sysgen/boot/* | Directory of object files |
/unix | File containing kernel image |
Kernel Parameter | OLD | Calendar Server | NEW |
---|---|---|---|
rlim_nofile_cur | X | 25 | max(25,X) |
rlim_nofile_max | X | 25 | max(25,X) |
maxup | X | 2*N+20 | max((2*N+20),X) |
nproc | X | 2*N+20 | (2*N+20)+X |
msgmni | X | N | N + X |
msgtql | X | N | N + X |
semmni | X | 1 | 1 + X |
semmns | X | 1 | 1 + X |
The following is a actual example involving 500 users:
Kernel Parameter | OLD | Calendar Server | NEW |
---|---|---|---|
rlim_nofile_cur | X | 25 | max(25,X) |
rlim_nofile_max | X | 25 | max(25,X) |
maxup | X | 1020 | max((1020),X) |
nproc | X | 1020 | 1020+X |
msgmni | X | N | N + X |
msgtql | X | N | N + X |
semmni | X | 1 | 1 + X |
semmns | X | 1 | 1 + X |
For more information on AIX Performance Tuning and Administration, please consult AIX Performance Tuning by IBM, Prentice Hall, 1996.
For more information on modifying the kernel parameters under SunOS, 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.
Consult SGI's on-line help for more information on IRIX performance
tuning.
An excellent source of general information on this topic is System Performance Tuning by Mike Loukides, O'Reilly & Associates, Inc., 1991.