SMPP benchmarking

We offer utilities for performing SMPP benchmarks, emgload and emgsink. As the names suggest there is one utility for generating traffic, emgload, and one utility for consuming traffic, emgsink. The "emg" part of the name comes from our Enterprise Messaging Gateway (EMG) product which is a high-performance, carrier-grade, SMS gateway and protocol converter.

In addition to supporting the SMPP protocol, emgload/emgsink utilities also support CIMD2, SMPP, UCP and SMTP. It can be used to test performance of, for example, SMSCs and mail servers. Since the utilities are light-weight they can generate a very high load. On a Linux server with 3.0 GHz Xeon processors it is possible to reach around 25000 messages per second using SMPP.

While being light-weight emgload/emgsink are still multi-threaded and can handle multiple simulatenous connections.

Performing a simple benchmark

We can use emgload and emgsink together to perform a simple benchmark by letting emgload connect directly to emgsink.

In order to get help on command-line options:

emgload --help

Randomizing senders and recipients

In order to have a more realistic distribution of sender and recipient addresses (msisdns) it is possible to randomize part of the sender and recipient addresses.

emgload --protocol smpp --port 10000 --threads 2 \
  --senders 4670:7 --recipients 4670:7

In the above example the sender and recipient addresses will begin with "4670" and then 7 random digits will be added.

SMPP details

By default, emgload currently uses operation bind_transmitter for logging in and operation submit_sm for sending messages. With emgload 2.1, this can be changed to bind_transceiver, by adding the command line option --smppbindtrx.

If you have other requirements please contact us at for a discussion.


To use, download file below, uncompress with "gzip -d", rename to "emgload" or "emgsink" respectively. Ensure execute permission is enabled, "chmod 111 emgsink", and run.

Download EMGLOAD 2.1.2

The emgload tool now has three new options.

emgload 2.1.2, Linux (x86, 64-bit)
emgsink 2.1.2, Linux (x86, 64-bit)

Download EMGLOAD 2.1.1

The --smpptlv option is added to emgload, making it possible to add operator specific options for messages sent over SMPP.

emgload 2.1.1.cd4942, Linux (x86, 64-bit)
emgsink 2.1.1.cd4942, Linux (x86, 64-bit)

Download EMGLOAD 2.1

emgload 2.1.af641a, Linux (x86, 64-bit)
emgsink 2.1.f2279c, Linux (x86, 64-bit)

The Linux versions are built on CentOS 5 (64-bit) with glibc 2.5. They run on CentOS 5/6/7 and compatible distributions.

Download EMGLOAD 2.0

emgload 2.0.34916, Linux (x86, 32-bit), 129 kB
emgload 2.0.34916, Linux (x86, 64-bit), 145 kB
emgload 2.0.34916, Solaris 10 (Sparc), 90 kB

emgsink 2.0.34916, Linux (x86, 32-bit), 120 kB
emgsink 2.0.34916, Linux (x86, 64-bit), 135 kB
emgsink 2.0.34916, Solaris 10 (Sparc), 90 kB

Linux versions are built on RedHat EL 4 (32-bit) with glibc 2.3.4 and RedHat EL 5 (64-bit) with glibc 2.5.


It is possible (and free) to use emgload and emgsink without a license. However, max throughput is then limited to 10 mps (messages per second). If you have EMG 5 or later installed, emgload will pick up the max throughput from the EMG license file.

The applications can also be licensed separately. The cost is 599 Euro per host and year.


For questions about our utilities or other products, or for technical assistance, you can contact us at

For more information about our commercial offerings, please visit

© Braxo AB, Sweden