AdroitLogic Private Ltd.

  • Increase font size
  • Default font size
  • Decrease font size

Tuning the UltraESB for performance

This article describes the basic steps on configuring the Operating System to support high performance execution of the UltraESB.

 

 

Operating System and Hardware

  • Linux Operating system using a Kernel 2.6 or later

    The UltraESB will perform best on a Linux operating system using a Kernel of version 2.6 or later, where the epoll facility is available for Java NIO. On systems without support for epoll, the NIO subsystem will fall-back to using a traditional poll-based selector. A Linux Kernel 2.1 or later is required to enable the use of the sendfile system call for zero-copy proxying with DMA.

  • The following system configurations should be performed to enable best performance

    /etc/sysctl.conf 
    net.ipv4.ip_local_port_range = 1024 65535
    net.ipv4.tcp_fin_timeout = 30
    fs.file-max = 2097152
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1

    /etc/security/limits.conf
    * soft nofile 4096
    * hard nofile 65535
  • File cache, and log files should be against a local disk or a Solid State Drive (SSD)

  • Multiple Network cards maybe used, Ensure that Gigabit Networking is enabled and that the Network card offloading capabilities are enabled. See [http://aldeby.org/blog/index.php/ethernet-network-offloading.html] for more information.

UltraESB configuration

The UltraESB configuration maybe optimised and tuned with the following options in general. However, it should be noted that any custom code developed by a user should be well tested for performance and memory utilization before being deployed onto a production instance, as a failing user component has the potential to put down an UltraESB node.

Thus the usual practice should be to test the user compoenents for functionality, performance and memory usage, and stress testing, followed by monitoring the system and tuning aspects to suit the workload the the use cases handled by the system.

  • Tuning of the file cache

    The 'PooledMessageFileCache' (or anther instance of the FileCache implementation in use) should be properly tuned to cache and re-use memory mapped files efficiently. All files should be mapped only to a fast local disk. Solid state drives may offer best performance, although they have not yet been tested against the UltraESB.