Performance improvements

Performance improvements

Here are a few things you can do to improve the performance of your AppMail app:

1. Make sure you have plenty RAM/CPU on your server. Really, you cannot expect to send million emails from your 4GB RAM vps and the server to remain snappy forever.

2. Try to use a server with SSD’s instead of regular HDD’s.

3. Try to use nginx instead of Apache. Or a combination where Apache serves static files and nginx serves dynamic ones.

4. Configure MySQL/MariaDB. This is extremely important since the default configuration of the database server, be it MySQL or MariaDB, will need attention in order to get the most out of it.

5. Make sure you understand how sending in AppMail works and how it impacts performance.

6. Enable campaigns queues.

7. If you don’t use AppMail as a SaaS app, you might be able to disable some of those checks.

8. Enable the removal of logs. Go to Backend > Settings > Cron > Delete logs settings.

9. If not using AppMail as a SaaS app, you might want to decrease the number of days we store the delivery server logs from Backend > Settings > Cron and set “Delivery servers logs removal days” to a lower value.

10. Please note that you have to have Redis installed on your server.

11. We do an almost real-time checking for campaigns against their status in order to see when a campaign has been paused. This might add some considerable overhead, so you can disable it by adding the following param to your apps/common/config/main-custom.php:

'campaign.delivery.sending.check_paused_realtime' => false,

For all the above changes, make sure you fully understand what you do before you do it.

    • Related Articles

    • The performance flags

      There are some flags you can define to disable some of the features of the app (like logging) to improve performance. If you create a file named performance-levels-custom.php in apps/common/config folder, with following contents: <?php ...
    • Understanding email delivery settings and how they impact performance

      Since there seems to be a huge misunderstanding related to how delivery settings should look like, I think a good explanation is needed. Let’s look at this: So, we have 10 campaigns at once and 100 subscribers at once. What does that mean is that ...
    • Clear cache command

      The way AppMail works in most cases where performance is important, is that it fetches the data from the database once, then it will store it in cache and serve it from there for as much as possible. This allows AppMail to perform fast because data ...
    • Sending Groups

      Historically, until version 2.0, when you wanted to send a campaign to more than one list/segment, AppMail would merge the selected lists/segments into a new list and would then send the campaign to that new list. Performance wise, this is a very bad ...
    • Timewarp

      Timewarp is a feature that schedules email campaigns based on each individual subscriber’s time zone, so subscribers receive your scheduled campaigns at the correct time for them. We use the subscriber IP address in order to detect the right user ...