Performance and scalability

How can I configure the system for best performance?

The most important in tuning the system for performance is to disable functionality that requires disk operations. The two most obvious things to do are to disable persistent message queues and to disable detailed logging. Also it is a good option to limit the number of outgoing and incoming routes to the minimum and to disable other unnecesary functionality, such as accounting, unused user and application configurations etc.

You can purchase consultancy or you can purchase our performance optimization service to help you tune your system.

How can I handle unreliable service provider connections?

The software has a built in loadbalancing functionality that is useful for two reasons. It can be used to handle unreliable service provider connections and to increase the message capacity. To handle unreliable service provider connections we recommend to setup two simultaneous connections to the same service provider and configure the software to do loadbalancing between them.

To setup loadbalancing between two service provider connections, you should assign the same service provider name to both connections in the configuration form.

(You can have up to 10 connections assigned to a balanced connection.) More information is available at: SMS load balancing page

How can I increase the capacity of an IP-SMS service provider connection?

We recommend to open two connections to the same service provider and configure the SMS gateway to perform loadbalancing between them.

More information is available at: SMS load balancing page

How can I increase the reliability of this SMS gateway?

First, we should mention that this SMS gateway was designed to work 24/7. It is very reliable. However, it might be possible that there is a power outage, the hardware fails, or the network goes down or some other external problem occurs (for example, the hard disk becomes full, the memory becomes exhausted, etc.). To overcome these issues we suggest to run two instances of the software on two different PCs in two different locations. This way you can make the system more tolerant for failures.

If you have two systems running, you can switch to the backup system manually in case you experience problems. Automatic switching is also possible with external software solutions.

How do you set daily and monthly message throughput limits for SMPP Clients and other users (SQL user, E-mail users, etc)?

You can use the credit limit handling feature for this, but you must decide which period you would like to use. You can have daily or monthly limits, but you cannot have both at the same time.

The credit limit handling feature allows you to set a limit for the number of messages transmitted in a given period of time. This period can be daily, weekly, monthly, yearly, or all-time.

If you have 1000 SMPP Clients or other users (SQL users, E-mail users) connected, how do you control the various message queues? For instance, how many messages to send from each queue in turn?

The algorithm is round robin. This means that in every round one message is taken from each user's outbox. This way the users share the sending capacity evenly.

This means that if the first user has 10000 messages in his outbox, while the second user has only 100, the second user does not have to wait for the transmission of the 10000 messages.

What is the scalability schema of the software?

The software's core performance depends on the underlying hardware. The scalability method we recommend depends on the way the software is used. If a relatively small amount of users generate a high volume of traffic, the hardware should be replaced to a more powerful one. If the number of users is great and the amount of traffic generated by the users is small, we recommend adding more PCs to the system.

In terms of hardware metrics, the most important are CPU resources and memory. For high volumes of traffic multicore and multiprocessor PC-s are recommended, because the software uses multiple threads to handle service provider connections, so it can utilize parallel processing. The amount of memory is another important factor. If several GB of memory is installed, it allows caching data in memory which improves performance. Network speed is usually not a limiting factor in IP SMS connections. Although we recommend fast SCSI hard disks, the speed of hardware is not very important, because with careful configuration harddisk access can be limited to a minimum.

Please note that very often the limiting factor regarding message capacity is the limitation of the service provider.

Does the SMS gateway support clustering over multiple servers and how does it occur?

Clustering is required if a large number of users need to connect to the service. An Ozeki SMS Gateway cluster is a set of independent computers. Each computer has Ozeki NG installed on it. Each Ozeki NG connects to the appropriate SMS service providers independently and serves users independently of other members of the cluster. Customer connections are distributed among the members of the cluster in two ways: DNS based server selection or preselecting router.

The DNS based selection is simple, the DNS server returns IP addresses for the DNS queries using the round robin algorithm. IP addresses are selected from the pool of addresses assigned to the cluster. A preselecting router uses network address translation to distribute load among the servers.

I cannot send more then 6 messages per second, although I have a 10 MPS license. What can be the problem?

Possible reasons:

  • You cannot put messages into the outbox at the rate of 10 MPS
  • The message queues are overloaded in Ozeki NG SMS Gateway
  • The network bandwidth is not sufficient
  • The hardware performance of your PC is not sufficient
  • The SMS service provider cannot accept messages that fast

    To give you some details. First check the size of your outbox. If you have an outbox filled with 100-2000 messages it means that you are able to provide messages for sending at a sufficient rate. If the outbox size is between 0-100 it means that the Ozeki SMS Gateway system is often waiting for messages to be transmitted. If you have a significantly larger outbox queue size, it means the message source overloads your system.

    If you have large number of messages (>100 000) in other queues, such as sent items it might have bad effect on performance. In this case, please configure the software using the Edit/server preferences form to remove old messages from your system automatically.

    If you have a 10MPS license it should be able to send 10MPS. It is not likely, that this is the limiting factor. This performance can be decreased however if you have several incoming messages. For example if you have delivery report request configured for outgoing messages, that means you receive at least one incoming messages for each sent message. This can limit sending speed.

    The Internet connection can be also a limiting factor. High latency or an overloaded connection can give you bad throughput. Please also note, that the uplink is the key factor. When you purchase an Internet connection, such as ADSL, CATV there is a good chance that you get good download speed, but poor upload capacity. Make sure you have >256Kbps upload speed and you don't have too other applications eating up the speed, such as streaming video upload/download, skype, bittorrent, etc...

    Another possible reason is hardware performance. If you have a powerful hardware use the Windows task manager to see which processes are using your CPU. There is a good chance you can identify a software that takes up the resources of your system. Disk defragmentors, screen savers, antivirus software, automatic updates can cause temporary performance problems on your host.

    The most probable reason, is that your service provider's system is slower then yours. On the SMPP service provider configuration form you can setup the Window size. Please consult with your provider what is the window size you can use. For example if the window size is set to 6, it means that a 7th message will not be sent, until a submit response is received for the 1st message. This can put a limit on sending performance.

    More information


    Most popular


    If you are insterested in how to setup automated SMS notifications, you should apply one of the following configurations:

    SMS through HTTP requests
    SMS from E-mail
    SMS from the command line
    SMS using txt files


    If you are a software developer you can proceed to adding SMS functionality to your source code by clicking on one of the following links:

    PHP SMS example
    C# SMS example
    ASP SMS example
    SQL SMS example
    Delphi SMS example

    If you would like to send and receive SMS messages from MS Office applications, please check out the following links:

    Send SMS from MS Excel
    Send SMS from MS Outlook
    Check out Ozeki SMS Client


  • < 4.5 Autoreply database | 5.2 Logging >