EMG 5.2 benchmark results Print

EMG 5.2 can handle more than 5 000 messages (SMS) per second with corresponding delivery reports, in total over 10 000 messages per second on modest hardware.

Hardware configuration

Tests were run on a single Dell PowerEdge 2950 server (2U).

CPU 2 x 1.86 GHz Intel Xeon E5320 quad-code CPUs (in total 8 cores)
Memory 8 GB
Raid controller Dell Perc 5/i
Disk 6 x 400 GB SAS (Seagate ST3400755SS) in a RAID-10 configuration
Operating System CentOS 5.5 (RedHat Enterprise Linux 5.5) with kernel version 2.6.18-194.3.1.el5PAE

 

Test setup

For the load test a load generator (emgload) and message sinks (emgsink) were used.

A load generator sent messages to EMG via UCP protocol requesting a delivery report (DLR). The messages were then sent out over SMPP to a message sink which also generated the delivery reports with a random delay between 0 and 10 seconds. The delivery reports were sent back to EMG where they were routed to another UCP connector connected to a message sink.

emg-test-setup

EMG configuration

EMG version used: ENTERPRISE MESSAGING GATEWAY 5.2.3.23815/20100802 (Linux)

The following general keywords are interesting for performance. The value mentioned is used us tests, unless otherwise indicated for each test case.

Keyword Value Description
PERSISTFILES Enabled If present, messages will be persisted to disk, otherwise they are stored in-memory only
IDWINDOW=x 100 How many message ids should be obtained from message id database at a time
LOGLEVEL=level INFO General log level
DLRSSIZE=x 1000000 Max number of internal entries for open delivery reports
MAXTOTALQUEUESIZE=x 110000 Max allowed queue size (in total). When exceeded messages will be rejected
MAXTOTALQUEUESIZE_SOFT=x 100000 Max allowed queue size (in total). When exceeded messages will a 0.1 sec delay will be forced

 

Test runs

Message is 145 characters (text), sender and recipient are "491234" followed by 7 random digits, in total 13 digits.

Each connector is configured for 10 instances (10 simultaneous connections/threads).

The amount of memory (RAM) used by EMG during these runs is approx 1.5 GB.

All results are given in "mps" (messages/SMS per second).

Test run 1

According to the defaults above.

Result: 4200 mps (plus delivery reports)

Test run 2

PERSISTFILES disabled.

Result: 5400 mps (plus delivery reports)

Test run 3

PERSISTFILES disabled. No delivery reports requested and handled.

Result: 8600 mps

Test run 4

EMG spool directory on NAS (Sun Unified Storage 7110) via NFS.

Result: 1500 mps (plus delivery reports)

Test run 5

LOGLEVEL=DEBUG2

Result: 180 mps (plus delivery reports)