SwiftMQ Performance Profile

Test Environment

  • AMD Quad-Core 1385, 2.7 GHz, 512 KB cache, 5799.74 bogomips
  • 8 GB RAM
  • 160 GB Intel SSD X-25M
  • Linux 2.6.18 SMP X86_64
  • JDK 1.6.0_21 64-Bit
  • SwiftMQ 8.1.0 with Network NIO Swiftlet 8.1.0 installed
  • JVM settings for SwiftMQ Universal Router and client were "-server -Xmx1024M".
  • SwiftMQ Universal Router and client were running on this machine.

Tests performed

  • Point to point tests were performed as pairs where a pair consists of 1 producer and 1 consumer, communicating over 1 dedicated queue.
  • Publish/subscribe tests were performed as 1-to-n tests over a single topic where n is the number of subscribers.
  • JMS Session modes used: non-transacted/auto-ack, non-transacted/client-ack (ack after each 10 messages), transacted (commit after each 10 messages)
  • 1 KB BytesMessage were used for all tests.

For persistent messages the tests were performed with disk cache disabled and disk sync enabled (most reliable option) and also with disk cache enabled and disk sync disabled (less reliable).

Configuration for disk cache disabled and disk sync enabled:

  • disk cache disabled with: hdparm -W 0 /dev/sda3
  • transaction log disk sync enabled with: force-sync="true"
  • thread pool "jms.connection", max-threads="1"
  • thread pool "jms.session", max-threads="100"
  • Network NIO Swiftlet: number-selector-tasks="1" use-direct-buffers="true"

Configuration for disk cache enabled and disk sync disabled:

  • disk cache enabled with: hdparm -W 1 /dev/sda3
  • transaction log disk sync disabled with: force-sync="false"
  • thread pool "jms.connection", max-threads="1"
  • thread pool "jms.session", max-threads="100"
  • Network NIO Swiftlet: number-selector-tasks="1" use-direct-buffers="true"

Configuration for tests with non-persistent messages:

  • thread pool "jms.connection", max-threads="1"
  • thread pool "jms.session", max-threads="1"
  • Network NIO Swiftlet: number-selector-tasks="1" use-direct-buffers="true"

Duplicate message detection were disabled for all queues, related queue controllers and the JMS client.

Test Results: Disk Cache DISABLED, Disk Sync ENABLED

Point to Point, persistent

Publish/Subscribe, durable, persistent

Test Results: Disk Cache ENABLED, Disk Sync DISABLED

Point to Point, persistent

Publish/Subscribe, durable, persistent

Test Results: Non-persistent Messages

Point to Point, non-persistent

Publish/Subscribe, non-durable, non-persistent