Communications Suite Tuning and Best Practices

Skip to end of metadata
Go to start of metadata

This documentation applies to Communications Suite 7 Update 1 at the time of its release. The most up-to-date documentation is available at the Communications Suite Documentation Home.

Oracle Communications Unified Communications Suite Tuning and Best Practices

This information brings together various tuning hints, tips, and current best practice for Communications Suite in an effort to simplify the process of improving Communications Suite performance and to avoid known issues.

Topics:

General

  • Do not use system root disks for Communications Suite application data or logs.
  • Keep a historical performance and application log.
    • Trend long term data: helps plan future storage and other resource requirements
    • Keep two weeks worth of application logs: helps to identify patterns as system usage varies over the period of a week, for example, quieter during the weekend for businesses
  • Disable debug data collection when no longer required
  • Monitor I/O performance
    • Communication Suite products, especially Messaging Server, are sensitive to I/O delays
    • iotop is useful for Solaris OS 10 systems
    • iostat is useful for Red Hat Linux and Oracle Solaris
  • Keep up to date with operating system and application patching
  • Avoid single-host installations for production deployments
    • More efficient to use front-end/back-end configuration
    • Lack of flexibility when migrating and expanding the environment
    • Use two or more Oracle zones/containers if limited physically systems are available
  • Monitor RAM usage
    • Ensure sufficient RAM available for file-system caching, especially if ZFS used to store application data
  • Participate in the Communications Suite Communities

Oracle Solaris Operating System

  • Use noatime for UFS and ZFS file-systems
  • Keep ZFS pool usage below 80% if possible
    • The performance of ZFS pools at %80 or greater dramatically decreases due to ZFS attempting to locate available spots in a fragmented file system
    • Patching Oracle Solaris (starting with 141908-01) to address ZFS bug ID 6596237 helped to reduce the impact
    • Make sure to clean up unnecessary ZFS snapshots to free space
    • Use zpool list command to check current utilization

Red Hat Linux

  • Ensure file-descriptors are sufficiently high
    Instructions for setting file-descriptors on Red Hat Linux
    1. In a terminal window, as root, verify the number of file descriptors.
      ulimit -n
      
    2. If this number is less than 16,384 you will need to increase the value.
    3. To change the number of file descriptors, add the following to the /etc/sysctl.conf file. Or, if the parameter is already set, increase the value to 16384 at a minimum.
      fs.file-max = 16384
      
    4. Add the following two lines to the /etc/security/limits.conf file.
      # Increase max file descriptors
      * - nofile 16384
      
    5. Either reboot the system for the value to take effect or run the following command:
      sysctl -p /etc/sysctl.conf
      
    6. In a new terminal window, as root verify the change.
      ulimit -n
      

Convergence

GlassFish Enterprise Server (Application Server)

  • Disable file-caching
    Instructions for GlassFish on Oracle Solaris
    1. Create the file /var/tmp/passfile containing the Application Server administrative password.
    2. Run the following commands:
      /opt/SUNWappserver/bin/asadmin set --user admin --passwordfile /var/tmp/passfile \
      server.http-service.http-file-cache.file-caching-enabled=false
      /opt/SUNWappserver/bin/asadmin set --user admin --passwordfile /var/tmp/passfile \
      server.http-service.http-file-cache.globally-enabled=false
      
    Instructions for GlassFish on Red Hat Linux
    1. Create the file /var/tmp/passfile containing the Application Server administrative password.
    2. Run the following commands:
      /opt/sun/appserver/bin/asadmin set --user admin --passwordfile /var/tmp/passfile \
      server.http-service.http-file-cache.file-caching-enabled=false
      /opt/sun/appserver/bin/asadmin set --user admin --passwordfile /var/tmp/passfile \
      server.http-service.http-file-cache.globally-enabled=false
      

Directory Server

  • Use DSEE7
  • Configure Directory Server db home directory to use a memory backed file-system. This helps reduce write I/O.
    Instructions for Directory Server on Oracle Solaris
    1. Stop Directory Server – ensure "ns-slapd" process is stopped.
    2. Edit /var/opt/SUNWdsee/dsins1/config/dse.ldif and replace:
      nsslapd-db-home-directory: /var/opt/SUNWdsee/dsins1/db
      with:
      nsslapd-db-home-directory: /tmp/slapd-server/
      Note
      Directory Server automatically creates "tmp/slapd-server/" if it does not exist.
    3. Start Directory Server.
    Instructions for Directory Server on Red Hat Linux
    1. Stop Directory Server – ensure "ns-slapd" process is stopped.
    2. Edit /var/opt/sun/directory/dsins1/config/dse.ldif (Red Hat Linux) and replace:
      nsslapd-db-home-directory: /var/opt/sun/directory/dsins1/db
      with:
      nsslapd-db-home-directory: /dev/shm/slapd-server/
      Note
      Directory Server automatically creates "/dev/shm/slapd-server/" if it doesn't exist.
    3. Start Directory Server.
  • Tune Directory Server to improve query times.

Instant Messaging

  • Configure Instant Messaging to use latest JDK
    Instructions for Instant Messaging Server on Oracle Solaris
    1. Stop Instant Messaging Server.
      cd /opt/sun/comms/im/sbin
      ./imadmin stop
      
    2. Edit the /opt/sun/comms/im/config/iim.conf file and add the following line:
      iim.jvm.command = /usr/jdk/latest/bin/java
      
    3. Start Instant Messaging.
      cd /opt/sun/comms/im/sbin
      ./imadmin start
      
    Instructions for Instant Messaging Server on Red Hat Linux
    1. Stop Instant Messaging Server.
      cd /opt/sun/comms/im/sbin
      ./imadmin stop
      
    2. Edit the /opt/sun/comms/im/config/iim.conf file and add the following line:
      iim.jvm.command = /usr/java/default/bin/java
      
    3. Start Instant Messaging.
      cd /opt/sun/comms/im/sbin
      ./imadmin start
      
  • Relocate the Instant Messaging temporary "scratch" files to the temporary file-system
    Instructions for Instant Messaging Server on Oracle Solaris
    1. Stop Instant Messaging.
      cd /opt/sun/comms/im/sbin
      ./imadmin stop
      
    2. Edit the /opt/sun/comms/im/config/iim.conf file and add the following line:
      iim_server.scratch_directory = "/tmp/iim-demo/"
      
    3. Start Instant Messaging.
      cd /opt/sun/comms/im/sbin
      ./imadmin start
      
    Instructions for Instant Messaging Server on Red Hat Linux
    1. Stop Instant Messaging.
      cd /opt/sun/comms/im/sbin
      ./imadmin stop
      
    2. Edit the /opt/sun/comms/im/config/iim.conf file and add the following line:
      iim_server.scratch_directory = "/dev/shm/iim-demo/"
      
    3. Start Instant Messaging.
      cd /opt/sun/comms/im/sbin
      ./imadmin start
      
  • Scalability enhancements
    Performance, Scalability, and Sizing Considerations for Instant Messaging

Messaging Server

  • Keep historical logging data
    Configuring Sun Java System Messaging Server Log File Rotation
  • Configure LMTP between front-end MTA and back-end store.
  • Configure store.dbtmpdir to use a memory backed file system to reduce I/O
    Instructions for Messaging Server on Oracle Solaris
    1. Configure store.dbtmpdir.
      cd /opt/sun/comms/messaging64/sbin
      ./configutil -o store.dbtmpdir -v "/tmp/msg-server/"
      
    2. Start Messaging Server.
      cd /opt/sun/comms/messaging64/sbin
      ./stop-msg
      ./start-msg
      
      
    Instructions for Messaging Server on Red Hat Linux
    1. Configure store.dbtmpdir.
      cd /opt/sun/comms/messaging64/sbin
      ./configutil -o store.dbtmpdir -v "/dev/shm/msg-server/"
      
    2. Start Messaging Server.
      cd /opt/sun/comms/messaging64/sbin
      ./stop-msg
      ./start-msg
      
      
  • Move mboxlist to separate ZFS or UFS file system with own LUN's
    Instructions for Messaging Server on Oracle Solaris
    1. Stop Messaging Server – ensure stored process is stopped.
    2. Rename mboxlist directory to mboxlist.backup.
      cd /opt/sun/comms/messaging64/data/store/
      mv mboxlist mboxlist.backup
      
    3. Copy mboxlist database to new location.
      cp -Rp mboxlist.backup/* <new location>
      
    4. Ensure the directory permissions for new location are set to the Messaging Server user.
      chown mailsrv:mail <new location>
      
    5. Create symlink to new location.
      ln -s <new location> mboxlist
      
    6. Start Messaging Server.
  • Use Messaging Server 64-bit
  • Put MTA out "front"
    http://www.sun.com/bigadmin/sundocs/articles/preferred_deploy_mta.jsp
  • Separate ZFS files ystem for email:
    http://blogs.sun.com/factotum/entry/messaging_server_and_mailstore_best
  • Use imslog.pl to review MTA traffic and tune accordingly
    • imslog.pl is available in the msg-svr-base/examples/unsupported/ directory
  • Backups tuning is important to reduce I/O load, especially during local business hours
    http://msg.wikidoc.info/index.php/Backup_performance_tuning
  • MTA RBL lookup tuning
    Performance Tuning DNS Realtime BlockLists (RBL) Lookups
  • Messaging Server Considerations
    Performance Tuning Considerations for a Messaging Server Architecture
  • Reduce Spam load
    Messaging Server Best Practices for Fighting Email Spam
  • Cache Tuning
  • Number of Messaging Server processes (64-bit environment)
    • Set service.imap.numprocesses to (the number of cores / 4). Increase service.imap.maxsessions as needed.
    • Set service.http.numprocesses to 1. Increase service.http.numprocesses as needed.
    • Monitor the number of threads (LWPs). If during peak load times the number of LWPs in the mshttpd or imapd processes is constantly over 200, you might need to increase numprocesses.
  • In a Convergence deployment, the webmail/mshttpd process should run on the same system as the Convergence instance
    • Reduces network delays
    • Simplifies trouble-shooting

Calendar Server 6.3

  • Configure Calendar Server to perform hotbackup/archive snapshot every 300 seconds (instead of 120 seconds default)
    Instructions for Calendar Server on Oracle Solaris
    1. Stop Calendar Server.
    2. Edit the /opt/sun/comms/calendar/SUNWics5/cal/config/ics.conf file.
      Replace:
      caldb.berkeleydb.archive.interval = "120"
      With:
      caldb.berkeleydb.archive.interval = "300"
      
    3. Start Calendar Server.
      Note
      For fresh installations of Calendar Server 6.3 patch XX and above the default has changed to 300 seconds.
  • Increase default DB pool size to reduce pread64 syscalls
    Instructions for Calendar Server on Oracle Solaris
    1. Stop Calendar Server.
    2. Edit the /opt/sun/comms/calendar/SUNWics5/cal/config/ics.conf file.
      Replace:
      caldb.berkeleydb.mempoolsizemb = "4"
      With:
      caldb.berkeleydb.mempoolsizemb = "64"
      
    3. Start Calendar Server.
    Instructions for Calendar Server on Red Hat Linux
    1. Stop Calendar Server.
    2. Edit the /opt/sun/comms/calendar/calendar/config/ics.conf file.
      Replace:
      caldb.berkeleydb.mempoolsizemb = "4"
      With:
      caldb.berkeleydb.mempoolsizemb = "64"
      
    3. Start Calendar Server.

Communications Express

  • Enable logging with rotation
    Logging is disabled by default. Having logging available to troubleshoot problems that might arise is essential.
    • uwclogging.properties settings to enable one-line logging and a maximum of 5 x 20 MB log files
      uwc.logging.enable=yes
      uwc.log.level=INFO
      # OneLineformatter requires Communications Express 6.3
      # RFE: Log Time: Date: IP address: login ID on single line in the logs
      uwc.log.formatter=OneLineformatter
      # Log rollover requires Communications 6.3
      # RFE 6503471 - Enable log rotation for UWC logs
      uwc.log.maxfiles = 5
      uwc.log.maxsize = 20
      
  • Communications Express to Work With Connector for Microsoft Outlook (Tuning Communications Express to Work With Connector for Microsoft Outlook)
    http://docs.sun.com/app/docs/doc/819-5202/gbooc?a=view

Connector for Microsoft Outlook

Indexing and Search Service

Labels:
calendarserver calendarserver Delete
tuning tuning Delete
messagingserver messagingserver Delete
performance performance Delete
instantmessaging instantmessaging Delete
convergence convergence Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Oracle community and they might not be employed or in any way formally affiliated with Oracle. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Oracle nor any other party necessarily agrees with them.