Oracle® Communications Instant Messaging Server System Administrator's Guide Release 9.0.2 E52523-01 |
|
|
PDF · Mobi · ePub |
This chapter describes how to enhance the tuning and performance of Oracle Communications Instant Messaging Server.
Use the most current version of Java suitable for your operating system and version of Instant Messaging Server. For information about Java versions, see the topic on installing Java for Communications Suite at:
https://wikis.oracle.com/display/Installing+Java+For+Communications+Suite+7.0.6
Instant Messaging Server uses the iim.jvm.maxmemorysize configuration property to set the maximum size of the Java Virtual Machine (JVM) heap to allocate. The default value of this parameter is 256 Mbytes. However, a large active deployment of Instant Messaging Server needs more memory. Determining the amount of memory to allocate for the Instant Messaging server depends on the number of concurrent active users that you need to support.
Additional load per user, use of additional Instant Messaging Server services like news or file transfer, and use of features such as message filters, archiving, or TLS require more memory. You should perform load profiling of typical user activity before deploying Instant Messaging Server into a production environment. Contact Oracle Support Services for more information about load profiling an Instant Messaging Server deployment.
Table 6-1 shows the set of properties that you configure to tailor the size and behavior of thread pools used to service client-to-server and server-to-server requests. These thread pools combined with the associated service ports can improve the throughput of an Instant Messaging server.
Table 6-1 Thread Pooling and Service Port Properties
Property | Description | Default Value |
---|---|---|
iim_server.maxthreads |
Maximum number of threads for the default thread pool. |
50 |
iim_server.threadpool |
List of independent thread pools. |
All parameters use the default thread pool. |
iim_server.threadpool.capacity |
Capacity of the default thread pool. |
10 * maxthreads |
iim_server.threadpool.poolname.maxthreads |
Maximum threads for the named thread pool, poolname. |
4 |
iim_server.threadpool.poolname.capacity |
Capacity of the named thread pool, poolname. |
10 * poolname_maxthreads |
Table 6-2 lists the defined thread pools.
Table 6-2 Defined Thread Pools
Name | Use |
---|---|
s2s-in |
All server-to-server inbound communications. If the port allows server-to-server inbound communications, Instant Messaging Server uses this thread pool. |
s2s-out |
All server-to-server outbound communications. If the port allows server-to-server outbound communications, Instant Messaging Server uses this thread pool. |
s2s |
All server-to-server communications. The combination of s2s-in and s2s-out. |
Defined thread pools can be specified and used with an associated server-only service port. You can modify the thread and port configurations by using the imconfutil command. You need to restart the server after making changes to the thread and port configurations.
Table 6-3 shows a sample load Instant Messaging Server load test.
Table 6-3 Sample Instant Messaging Server Load Test
Platform Details | System Configuration | Server Heap Size | No. of Users | No. of Concurrent Sessions | User Cache | Load Per 10 Seconds |
---|---|---|---|---|---|---|
|
Server and Multiplexor installed in the same box |
1 GByte for Mux, 5 GBytes for server |
100,000 |
60000 |
128 count |
|
This sample uses the following configuration properties.
iim.jvm.maxmemorysize=4096
iim_server.memory.user.cache_count=128
iim_ldap.maxconns=70
iim_server.maxthreads=50
iim_server.jvm.options=-d64
iim_mux.jvm.options=-d6
iim_mux.maxsessions=100000
iim_server.maxsessions=150000
where,
iim_server.memory.user.cache_count specifies the memory user cache size. In the this sample, the value is set to 128 for a user base of 100,000. If the user base is more than 100,000, increase this value proportionately.
iim_server.scratch_directory specifies the directory where the user cache is written to the disk. Place the scratch directory on tempfs. For 100,000 user base in Solaris 10 OS, approximately 500 to 600 MBytes of space is required on a file system and approximately 4 to 5 GBytes of space is required on tempfs.
iim_ldap.maxconns specifies the LDAP context pool size. In case of more roster operations and in a server pool environment, increase this value appropriately.
iim_server.maxthreads specifies the size of the thread pool. If you do not have sufficient memory to keep user cache in tempfs, you can increase the value of the thread pool.
iim_server.jvm.options enables use of the 64-bit JVM and thus large heap sizes.
iim_mux.jvm.options enables you start the multiplexor in 64-bit mode.
iim_mux.maxsessions specifies the maximum number of concurrent client connection a multipexor can accept.
iim_server.maxsessions specifies the number of sessions allowed through an instance of multipexor connected to the server.