Ozeki RAM usage issues

High-capacity systems (sending several hundreds of thousands or millions of messages) sometimes may experience high RAM usage. This guide helps you understand why this happens and what to do about it.

How does Ozeki use the RAM

An SMS delivery task has two major parts: first the message is sent, and second the delivery report is received. Sometimes there is a delay between the original message submission and the incoming delivery report.

In order to match an incoming delivery report to its corresponding message, the message must be stored until the delivery report comes in. Ozeki stores the messages in memory for performance reasons. It is much faster to find a message in the RAM then on the disk.

If a delivery report comes in Ozeki removes the original message and the delivery report from the RAM. This means, that for most systems the RAM will not go above a certain tolerable level.

Why does my memory usage go up?

If you experience that your RAM usage goes up significantly, it might be caused by the fact that there are no incoming delivery reports in your system. In such a situation, the SMS messages are not removed from the memory, because the system assumes a corresponding delivery report will come in at a later time.

If this is the case, You will see a lot of messages in your Sent folder. (Figure 1)

Figure 1 - SMS Gateway RAM usage high

What can I do about this?

If you experience such a situation, you must configure "Cleanup" for the user account where you see this issue. To do this, open the Configuration form of the user account and select the "Advanced" tab. In the "Advanced" tab you will see a "Cleanup" group box, that will offer you the option to remove old messages from your system automatically. (Figure 2)

Figure 2 - Configure SMS message cleanup policy

What can I do if my system does not start?

If you have not setup your cleanup policy previously, and now your system crashes or does not start due to high RAM consumption, you need to perform the following steps:

  1. Stop the Ozeki Service in the Windows Service Management Console
  2. Delete the following directory: C:\Program Files\Ozeki\Data\Communication\Queues\http1_localhost\Out_Submitted_Accepted
    Note, that you need to select the appropriate user (in this example the name of the user account was http1@localhost), and you need to pick the queue you want to clear.
  3. After the message queue has been cleared, you can restart the Ozeki service

More information