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.