Skip Headers
Oracle® Calendar Administrator's Guide
10g Release 1 (10.1.1)

Part Number B14472-02
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

B Adjusting Kernel Parameters for Calendar

This appendix details the necessary modifications to certain kernel parameters and operating environments to ensure that sufficient resources are allocated to the Calendar server. It also details issues in server configuration that must be considered in order to support certain special operating environments such as Solaris clusters.

This appendix contains the following sections:

Adjusting Kernel Parameters

The UNIX system parameters that need adjustment are used to control resource consumption on a user, process, or systemwide basis. For 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 or smaller, depending on the parameter. For a systemwide parameter, the server requirement must be added to the existing value to calculate the new value.

Variables and Terminology

The formulas recommended for all platform-specific kernel parameter calculations in this appendix are based on the following variable definitions:

Aside from variables, some terminology must also be defined and understood before beginning kernel calculations. The following terms are used in the Preliminary Calculations section of this appendix, as well as in the platform-specific calculations:

Preliminary Calculations

In order to simplify the calculation of platform specific kernel parameters in the tables later in this appendix, some preliminary calculation is required. The values that need to be calculated are the number of LCK listeners, denoted by "L"; the number of semaphores, denoted by "S"; and the biggest shared memory segment, denoted by "B". The formulas are followed by two examples.

Calculating LCK Listeners

The formula used to calculate the LCK listener requirements depends on the number of nodes that are configured for calendar (N). Use the formula in Table B-1 applicable to your environment.

Table B-1 Calculating L: LCK Listeners

If N < 10 If N >= 10

L = N

L = TRUNC [(N - 10)/15 +10]


Example 1:

When N = 5
L = 5

Example 2:

When N = 13
L = TRUNC {[(13) - 10]/15 + 10}
L = TRUNC {3/15 + 10}
L = TRUNC {0.2 + 10}
L = TRUNC {10.2}
L = 10

Calculating the Number of Semaphores

The formula used to calculate number of semaphores depends on the number of nodes that are configured for calendar (N). Use the formula that is in Table B-2 applicable to your environment in:

Table B-2 Calculating S: Number of Semaphores

If N < 10 If N >= 10

S = N + 18

S = TRUNC [(N - 10)/15 + 28]


Example 1:

When N = 5
S = (5) + 18
S= 23

Example 2:

When N = 13
S = TRUNC {[(13) - 10]/15 + 28}
S = TRUNC {3/15 + 28}
S = TRUNC {0.2 + 28}
S = TRUNC {28.2}
S = 28

Calculating the Biggest Shared Memory Segment

The formula used to calculate the biggest shared memory segment depends on the value assigned to [ENG] maxsessions (M) in the $ORACLE_HOME/ocal/misc/unison.ini file. Use the following formula to compute the biggest shared memory segment:

B = MAX [2000000, (8000 * M)]

Example 1:

When M = 200
B = MAX [2000000, (8000 * 200)]
B = MAX [2000000, 1600000]
B = 2000000

Example 2

When M = 3000
B = MAX [2000000, (8000 * 3000)]
B = MAX [2000000, 24000000]
B = 24000000 

Adjusting the Solaris Kernel Parameters

Solaris provides tunable parameters for the kernel and kernel modules. 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 format:

set rlim_fd_cur=1024
set rlim_fd_max=4117

In addition, the message queue and semaphore parameters must include the name of the specific module to be modified. The format is as follows:

set msgsys:msginfo_msgmni=351 
set semsys:seminfo_semmni=345

You must restart the system for the preceding changes to take effect.


To see the current values assigned to the kernel parameters, use the sysdef command located in the /usr/sbin directory. For example:

% sysdef

The following forceload directives must be specified in the /etc/system kernel configuration file:

forceload: sys/semsys
forceload: sys/shmsys

In Table B-3, the X variable represents the current kernel parameter setting on your operating system, whereas the Y variable represents the value calculated in the Calendar server requirement column.

Table B-3 Solaris Kernel Parameters

Kernel Parameter Parameter Description Current Setting (X) Calendar Server Requirement (Y) New Setting

Limits

rlim_fd_cur

file descriptors soft limit

X

1024

MAX (X,Y)

rlim_fd_max

file descriptors hard limit

X

(4 * N) + 4077

MAX (X,Y)

IPC Messages

msgsys:msginfo_msgmni

max. message queue identifiers systemwide

X

ROUNDUP (1.1 * M)

X + Y

msgsys:msginfo_msgmax

max. message size

X

4096

MAX (X,Y)

msgsys:msginfo_msgmnb

max. bytes on queue

X

144 * M

MAX (X,Y)

msgsys:msginfo_msgtql

max. message headers

X

M

MAX (X,Y)

IPC Semaphores

semsys:seminfo_semmni

max. semaphore sets systemwide

X

ROUNDUP (1.5 * S)

X + Y

semsys:seminfo_semmns

max. semaphores systemwide

X

6 * S

X + Y

semsys:seminfo_semmnu

max. undo structures systemwide

X

ROUNDUP (1.5 * S)

X + Y

semsys:seminfo_semmsl

max. semaphores per set

X

12

MAX (X,Y)

semsys:seminfo_semopm

max. operations per semop call

X

12

MAX (X,Y)

semsys:seminfo_semume

max. undo structures per process

X

ROUNDUP (1.5 * S)

MAX (X,Y)

semsys:seminfo_semvmx

max. value of a semaphore

X

32767

MAX (X,Y)

semsys:seminfo_semaem

max. adjust-on-exit value

X

16384

MAX (X,Y)

IPC Shared Memory

shmsys:shminfo_shmmax

max. shared memory segment size

X

B

MAX (X,Y)

shmsys:shminfo_shmmin

min. shared memory segment size

X

1

1

shmsys:shminfo_shmmni

max. shm identifiers systemwide

X

18

X + Y

shmsys:shminfo_shmseg

max. shm segments per process

X

18

MAX (X,Y)


Example: Calculating Solaris Kernel Parameters for Calendar

The following is an example with 2500 concurrent users, and 10 configured nodes:

M = 2500

N = 10

In order to continue with the calculations based on the formulas in Table B-3, "Solaris Kernel Parameters", values for the number of semaphores (S), and the biggest shared memory segment (B) will have to be calculated. For information on how the calculate S and B, see "Calculating the Number of Semaphores" and "Calculating the Biggest Shared Memory Segment" earlier in this appendix.

As N = 10, use the following formula to calculate the number of semaphores:

S = TRUNC [(N - 10)/15 + 28]

S = TRUNC [(10 - 10)/15 + 28]
S = TRUNC [0/15 + 28]
S = TRUNC [0 + 28]
S = TRUNC [28]
S = 28
 

Use the following formula to calculate the biggest shared memory segment:

B = MAX [2000000, (8000 * M)]

B = MAX [2000000,(8000*2500)]
B = MAX [2000000,(20000000)]
B = 20000000

Using the formulas in Table B-3, "Solaris Kernel Parameters" with the calculated variables, the values in that the Oracle Calendar server requires can be found in the following table:

Table B-4 Solaris Kernel Parameters (Example)

Kernel Parameter Parameter Description Current Setting (X) Calendar Server Requirement (Y) New Setting

Limits

rlim_fd_cur

file descriptors soft limit

X

1024

MAX (X,1024)

rlim_fd_max

file descriptors hard limit

X

4117

MAX (X,4117)

IPC Messages

msgsys:msginfo_msgmni

max. message queue identifiers systemwide

X

2750

X + 2750

msgsys:msginfo_msgmax

max. message size

X

4096

MAX (X,4096)

msgsys:msginfo_msgmnb

max. bytes on queue

X

360000

MAX (X,360000)

msgsys:msginfo_msgtql

max. message headers

X

2500

MAX (X,2500)

IPC Semaphores

semsys:seminfo_semmni

max. semaphore sets systemwide

X

42

X + 42

semsys:seminfo_semmns

max. semaphores systemwide

X

168

X + 168

semsys:seminfo_semmnu

max. undo structures systemwide

X

42

X + 42

semsys:seminfo_semmsl

max. semaphores per set

X

12

MAX (X,12)

semsys:seminfo_semopm

max. operations per semop call

X

12

MAX (X,12)

semsys:seminfo_semume

max. undo structures per process

X

42

MAX (X,12)

semsys:seminfo_semvmx

max. value of a semaphore

X

32767

MAX(X,32767)

semsys:seminfo_semaem

max. adjust-on-exit value

X

16384

MAX(X,16384)

IPC Shared Memory

shmsys:shminfo_shmmax

max. shared memory segment size

X

20 000 000

MAX (X,20 000 000)

shmsys:shminfo_shmmin

min. shared memory segment size

X

1

1

shmsys:shminfo_shmmni

max. shm identifiers systemwide

X

18

X + 18

shmsys:shminfo_shmseg

max. shm segments per process

X

18

MAX (X,18)


Additional reading

Information on modifying the kernel parameters is available in the Solaris Tunable Parameters Reference Manual by Sun Microsystems, Inc.

For more information about modifying the kernel parameters under Solaris, refer to Solaris Internals: Core Kernel Components (ISBN: 0-13-022496-0)

Adjusting the HP-UX Kernel Parameters

The following section describes the kernel requirements, that should apply to most HP-UX installations. All parameters can be modified using SAM, a menu-based system administration manager.

The value of semmsl is set at 500 and is not configurable on HP-UX.

In Table B-5, the X variable represents the current kernel parameter setting on your operating system, whereas the Y variable represents the value calculated in the Calendar server requirement column.

Table B-5 HP-UX Kernel Parameters

Kernel Parameter Parameter Description Current Setting (X) Calendar Server Requirement (Y) New Setting

Open Files

maxfiles

file descriptors soft limit

X

1024

MAX (X,Y)

maxfiles_lim

file descriptors hard limit

X

(4 * N) + 3821

MAX (X,Y)

nfile

max. file descriptors systemwide

X

MAX {100000, [417 + (7 * L) + (3821 * M)/25 +(4 * M * N)/25]}

X + Y

Process Management

max_thread_proc

max. threads per process

X

210

MAX (X,Y)

nkthread

max. kernel thread systemwide

X

ROUNDUP [100 + (1.1 * M)]

X + Y

maxuprc

max. user processes

X

TRUNC {1.5 [(M/25) + L + 57]}

MAX (X,Y)

nproc

max. process systemwide

X

TRUNC {1.5 [(M/25) + L + 57]}

X + Y

IPC Messages

mesg

enable/disable IPC messages

X

1

1

msgmap

message free-space map size

X

M + 2

msgtql + 2

msgmax

max. message size

X

4096

MAX (X,Y)

msgmnb

max. bytes in message queue

X

65535

MAX (X,Y)

msgmni

max. msg queues systemwide

X

ROUNDUP (1.1 * M)

X + Y

msgseg

max. msg segments systemwide

X

2500

MAX (X,Y)

msgssz

message segment size

X

159

MAX (X,Y)

msgtql

max. messages systemwide

X

M

X + Y

IPC Semaphores

sema

enable/disable semaphores

X

1

1

semaem

sem value-change limit

X

16384

MAX (X,Y)

semmni

max. sem sets systemwide

X

ROUNDUP (1.5 * S)

X + Y

semmap

size of free-sem resource map

X

ROUNDUP [(1.5 * S) + 2]

MAX (X,Y)

semmns

max. user sem systemwide

X

ROUNDUP (6 * S)

X + Y

semmnu

max. undo per semaphore

X

ROUNDUP (1.5 * S)

MAX (X,Y)

semume

max. sem undo per process

X

ROUNDUP (1.5 * S)

MAX (X,Y)

semvmx

max. value of a semaphore

X

32767

MAX (X,Y)

IPC Shared Memory

shmem

enable/disable shared memory

X

1

1

shmmax

max. shmem segment size

X

B

MAX (X,Y)

shmmni

max. segments systemwide

X

18

X + Y

shmseg

max. segments per process

X

18

MAX (X,Y)

Refer to "Setting maxfiles/maxfiles_lim above 2048 on HP-UX 11.0"


Setting maxfiles/maxfiles_lim above 2048 on HP-UX 11.0

For information about how to set maxfiles/maxfiles_lim greater than 2048 on HP-UX 11.0, and other configurable kernel parameters, consult HP-UX documentation at http://docs.hp.com/en/939/KCParms/KCparams.OverviewAll.html

Example: Calculating HP-UX Kernel Parameters for Calendar

The following is an example with 2500 concurrent users, and 10 configured nodes:

M = 2500

N = 10

In order to continue with the calculations based on the formulas in Table B-5, "HP-UX Kernel Parameters", values for LCK listeners (L), the number of semaphores (S), and the biggest shared memory segment (B) will have to be calculated. For information on how the calculate L, S and B, see "Calculating LCK Listeners" and "Calculating the Number of Semaphores" and "Calculating the Biggest Shared Memory Segment" earlier in this appendix.

As N = 10, use the following formula to calculate the LCK listeners:

L = TRUNC [(N - 10)/15 +10]

L = TRUNC [(10 - 10)/15 + 10]
L = TRUNC [0/15 +10]
L = TRUNC [0 + 10]
L = TRUNC [10]
L = 10

As N = 10, use the following formula to calculate the number of semaphores:

S = TRUNC [(N - 10)/15 + 28]

S = TRUNC [(10 - 10)/15 + 28]
S = TRUNC [0/15 + 28]
S = TRUNC [0 + 28]
S = TRUNC [28]
S = 28
 

Use the following formula to calculate the biggest shared memory segment:

B = MAX [2000000, (8000 * M)]

B = MAX [2000000,(8000*2500)]
B = MAX [2000000,(20000000)]
B = 20000000

Using the formulas in Table B-5, "HP-UX Kernel Parameters" with the above calculated variables, the values in that the Calendar server requires can be found in the following table:

Table B-6 HP-UX Kernel Parameters (Example)

Kernel Parameter Parameter Description Current setting (X) Calendar server requirement (Y) New setting

Open Files

maxfiles

file descriptors soft limit

X

1024

MAX (X,1024)

maxfiles_lim

file descriptors hard limit

X

3861

MAX (X,3861)

nfile

max. file descriptors systemwide

X

386587

X + 386587

Process Management

max_thread_proc

max. threads per process

X

210

MAX (X,210)

nkthread

max. kernel thread systemwide

X

2850

X + 2850

maxuprc

max. user processes

X

217

MAX (X,217)

nproc

max. process systemwide

X

217

X + 217

IPC Messages

mesg

enable/disable IPC messages

X

1

1

msgmap

message free-space map size

X

2502

msgtql + 2

msgmax

max. message size

X

4096

MAX (X,4096)

msgmnb

max. bytes in message queue

X

65535

MAX (X,65535)

msgmni

max. msg queues systemwide

X

2750

X + 2750

msgseg

max. msg segments systemwide

X

2500

MAX (X,2500)

msgssz

message segment size

X

159

MAX (X,159)

msgtql

max. messages systemwide

X

2500

X + 2500

IPC Semaphores

sema

enable/disable semaphores

X

1

1

semaem

sem value-change limit

X

16384

MAX (X,16384)

semmni

max. sem sets systemwide

X

42

MAX (X,42)

semmap

size of free-sem resource map

X

44

X + 44

semmns

max. user sem systemwide

X

168

X + 168

semmnu

max. undo per semaphore

X

42

MAX (X,42)

semume

max. sem undo per process

X

42

MAX (X,42)

semvmx

max. value of a semaphore

X

32767

MAX (X,32767)

IPC Shared Memory

shmem

enable/disable shared memory

X

1

1

shmmax

max. shmem segment size

X

20000000

MAX (X,20000000)

shmmni

max. segments systemwide

X

18

X + 18

shmseg

max. segments per process

X

18

MAX (X,18)


Additional reading

For more information about modifying the kernel parameters under HP-UX, refer to:

http://docs.hp.com/hpux/onlinedocs/939/KCParms/KCparams.OverviewAll.html

Adjusting the Linux Kernel Parameters

Linux requires a change to the system kernel parameters in order to support the Oracle Calendar server's default configuration.

Note that the kernel.sem parameter is multivalued, and accepts values in the following format: semmsl semmns semopm semmni. For example:

100 256 100 100

To increase the file descriptor's soft and hard limits, edit the /etc/security/limits.conf file and add the following lines:

*soft nofile 1024

*hard nofile 65535

Note that you may need to log off and back on again before the changes take effect.

In Table B-7, the X variable represents the current kernel parameter setting on your operating system, whereas the Y variable represents the value calculated in the Calendar server requirement column.

Table B-7 Kernel Tuning Requirements for Linux

Kernel Parameter Parameter Description Current Setting (X) Calendar Server Requirement (Y) New Setting

/etc/security/limits.conf

* soft nofile

file descriptors soft limit

X

1024

MAX (X,Y)

* hard nofile

file descriptors hard limit

X

(4 * N) + 3821

MAX (X,Y)

/etc/sysctl.conf

Files

fs.file-max

max. file descriptors systemwide

X

MAX {100000, [417 + (7 * L) + (3821 * M)/25 +(4 * M * N)/25]}

X + Y

Process Management

kernel.threads-max

max. threads per process

X

210

MAX (X,Y)

IPC Messages

kernel.msgmni

max. message queue identifiers systemwide

X

ROUNDUP (1.1 * M)

MAX (X,Y)

kernel.msgmax

max. message size

X

4096

MAX (X,Y)

kernel.msgmnb

max. bytes on queue

X

65535

MAX (X,Y)

IPC Semaphores

kernel.sem (1: semmsl)

max. semaphores per set

X

12

MAX (X,Y)

kernel.sem (2: semmns)

max. semaphores systemwide

X

ROUNDUP (1.5 * S)

X + Y

kernel.sem (3: semopm)

max. operations per semop call

X

12

MAX (X,Y)

kernel.sem (4: semmni)

max. semaphore sets systemwide

X

ROUNDUP (1.5 * S)

X + Y

IPC Shared Memory

kernel.shmmax

max. shared memory segment size

X

B

MAX (X,Y)

kernel.shmmni

max. shm identifiers systemwide

X

18

X + Y

kernel.shmall

total shm pages available systemwide

X

ROUNDUP [(9 * B)/32768]

X + Y


Example: Calculating Linux Kernel Parameters for Calendar

The following is an example with 2500 concurrent users, and 10 configured nodes:

M = 2500

N = 10

In order to continue with the calculations based on the formulas in Table B-7, "Kernel Tuning Requirements for Linux", values for LCK listeners (L), the number of semaphores (S), and the biggest shared memory segment (B) will have to be calculated. For information on how the calculate L, S and B, see "Calculating LCK Listeners" and "Calculating the Number of Semaphores" and "Calculating the Biggest Shared Memory Segment" earlier in this appendix.

As N = 10, use the following formula to calculate the LCK listeners:

L = TRUNC [(N - 10)/15 +10]

L = TRUNC [(10 - 10)/15 + 10]
L = TRUNC [0/15 +10]
L = TRUNC [0 + 10]
L = TRUNC [10]
L = 10

As N = 10, use the following formula to calculate the number of semaphores:

S = TRUNC [(N - 10)/15 + 28]

S = TRUNC [(10 - 10)/15 + 28]
S = TRUNC [0/15 + 28]
S = TRUNC [0 + 28]
S = TRUNC [28]
S = 28
 

Use the following formula to calculate the biggest shared memory segment:

B = MAX [2000000, (8000 * M)]

B = MAX [2000000,(8000*2500)]
B = MAX [2000000,(20000000)]
B = 20000000

Using the formulas in Table B-7, "Kernel Tuning Requirements for Linux" with the above calculated variables, the values in that the Calendar server requires can be found in the following table:

Table B-8 Kernel Tuning Requirements for Linux (Example)

Kernel Parameter Parameter Description Current Setting (X) Calendar Server Requirement New Setting

/etc/security/limits.conf

* soft nofile

file descriptors soft limit

X

1024

MAX (X,1024)

* hard nofile

file descriptors hard limit

X

3861

MAX (X,3861)

/etc/sysctl.conf

Files

fs.file-max

max. file descriptors systemwide

X

386587

X + 386587

Process Management

kernel.threads-max

max. threads per process

X

210

MAX (X,210)

IPC Messages

kernel.msgmni

max. message queue identifiers systemwide

X

2750

X + 2750

kernel.msgmax

max. message size

X

4096

MAX (X,4096)

kernel.msgmnb

max. bytes on queue

X

65535

MAX (X,65535)

IPC Semaphores

kernel.sem (1: semmsl)

max. semaphores per set

X

12

MAX (X,12)

kernel.sem (2: semmns)

max. semaphores systemwide

X

42

X + 42

kernel.sem (3: semopm)

max. operations per semop call

X

12

MAX (X,12)

kernel.sem (4: semmni)

max. semaphore sets systemwide

X

42

X + 42

IPC Shared Memory

kernel.shmmax

max. shared memory segment size

X

20000000

MAX (X,20000000)

kernel.shmmni

max. shm identifiers systemwide

X

18

X + 18

kernel.shmall

total shm pages available systemwide

X

5494

X + 5494


Adjusting the AIX Kernel Parameters

The AIX platform requires a change to the system kernel parameters to support the Oracle Calendar server default configuration.

In Table B-9, the X variable represents the current kernel parameter setting on your operating system, whereas the Y variable represents the value calculated in the Calendar server requirement column.

Table B-9 Kernel Tuning Requirements for AIX

Kernel Parameter Parameter Description Current Setting (X) Calendar Server Requirement (Y) New Setting

/etc/security/limits

nofiles

file descriptors soft limit

X

1024

MAX (X,Y)

nofiles_hard

file descriptors hard limit

X

(4 * N) + 158

MAX (X,Y)

Process Management

sys0: maxuproc

max. processes per user

X

62 + M + L

MAX (X,Y)


Example: Calculating AIX Kernel Parameters for Calendar

The following is an example with 2500 concurrent users, and 10 configured nodes:

M = 2500

N = 10

In order to continue with the calculations based on the formulas in Table B-9, "Kernel Tuning Requirements for AIX", the value for LCK listeners (L) will have to be calculated. For information on how the calculate L, see "Calculating LCK Listeners" earlier in this appendix.

As N = 10, use the following formula to calculate the LCK listeners:

L = TRUNC [(N - 10)/15 +10]

L = TRUNC [(10 - 10)/15 + 10]
L = TRUNC [0/15 +10]
L = TRUNC [0 + 10]
L = TRUNC [10]
L = 10

Using the formulas in Table B-9, "Kernel Tuning Requirements for AIX" with the above calculated variable, the values in that the Calendar server requires can be found in the following table:

Table B-10 Kernel Tuning Requirements for AIX (Example)

Kernel Parameter Parameter Description Current Setting (X) Calendar Server Requirement (Y) New Setting

/etc/security/limits

nofiles

file descriptors soft limit

X

1024

MAX (X,1024)

nofiles_hard

file descriptors hard limit

X

198

MAX (X,198)

Process Management

sys0: maxuproc

max. processes per user

X

2572

MAX (X,2572)


Additional reading

For more information about modifying the kernel parameters under AIX, refer to Performance Management Guide: Kernel Tunable Parameters

http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixbman/prftungd/2365a82.htm#HDRI25144

Using Operating System Clusters

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-on, 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 $ORACLE_HOME/ocal/misc/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. For more information about all of the unison.ini parameters listed above, see "Calendar Server Parameters" in Chapter 3 of Oracle Calendar Reference Manual.

If you have a node network, ensure also that your $ORACLE_HOME/ocal/misc/nodes.ini file uses only cluster host names instead of physical host names, and that all clients are using the cluster host name to sign on to the calendar server.

Note:

When a machine containing a master node switches over to another machine in the cluster, Oracle Calendar Web clients can have difficulty signing on, because master nodes currently identify themselves to clients using physical host names.