Documentation Center

Optimizing S1000D Upload Content performance

This topic provides guidelines to help determine the optimal values of registry settings related to multithreading for the S1000D Upload Content tool.

Use of multiple threads helps to increase the overall performance of the S1000D Upload Content tool, but caution should be used when configuring the various thread-related registry settings. Before modifying these registry settings, it is critical to have a clear understanding of how the number of executing processes relative to available system resources impacts performance. Refer to Amdahl's Law to understand more on threading and system resources.

How S1000D Upload Content performance was tested

To find the optimal settings for S1000D Upload Content tool performance, the relationship among the following registry values under the key path HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\XyEnterprise\Content@\Web\Settings\Upload was examined.
  • MAX_UPLOAD_THREADS: The number of upload threads that will be immediately created. This value does not limit the maximum number of threads created by the tool over time.
  • MAX_POOL_SIZE: The maximum number of threads used by tool that can be created.
  • MAX_CS_PROCESSES (Contenta Server Processes): The maximum number of connections to Contenta Server (i.e. portal processes) by the tool. An upload thread must have a connection to a portal process in order to import a data file.
  • MAX_QUEUE_SIZE: The maximum number of S1000D Upload Content import tasks that can be queued.

These settings control both the number of upload threads and the number of Contenta Server processes available for use by those threads.

The following system configuration was used during the research.
  • Processor: Intel® CoreTM i7 CPU 2.11GHz
  • Number of Processors: 6
  • Memory: 16 GB
  • Disk: 500 GB SATA
  • Products Installed: Contenta Web, Contenta server, and Oracle Database server.

Only the Upload Content tool was executed to gather the various data points.

Findings and guidelines

Performance testing of the S1000D Upload Content tool yielded the following results.
  • MAX_UPLOAD_THREADS

    Setting MAX_UPLOAD_THREADS to the number of processors plus one improved performance by 50% over the default value of 2. The optimal value for this setting can be the number of processors plus one.

  • MAX_POOL_SIZE

    Upload Content performed best when MAX_POOL_SIZE was set to double the value set for MAX_UPLOAD_THREADS.

  • MAX_CS_PROCESSES

    In general, it was found that for best performance, the value set for MAX_CS_PROCESSES should always be equal to or greater than that of MAX_QUEUE_SIZE. Setting the value of MAX_CS_PROCESSES to at least five more than that of MAX_QUEUE_SIZE ensures there will be no thread waiting for a Contenta Server (portal) process to be available for use.

  • MAX_QUEUE_SIZE

    The value of MAX_QUEUE_SIZE should be based on how much memory is allocated for Java on the Tomcat server. Setting this value too high could cause an out-of-memory error or slow down system performance. Also remember that this value has a direct relation to MAX_CS_PROCESSES. RWS recommends that the value of MAX_QUEUE_SIZE be set to five times the value of MAX_POOL_SIZE.