Server Management

Scaling for 100K+ Emails Per Day

September 27, 2025 1 min read 1,620 views Guide

Baseline Requirements

At 100K emails/day you need roughly 70 emails/minute sustained. A single queue worker can handle 10–20 sends/minute depending on SMTP latency. Scale accordingly.

Queue Worker Tuning

Increase Supervisor worker processes in /etc/supervisor/conf.d/acellemail.conf:

numprocs=8

Then:

sudo supervisorctl reread && sudo supervisorctl update
sudo supervisorctl restart all

Monitor queue depth:

watch -n 2 "redis-cli llen queues:default"

MySQL Tuning

Edit /etc/mysql/mysql.conf.d/mysqld.cnf:

innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
max_connections = 300
query_cache_type = 0
innodb_flush_log_at_trx_commit = 2

Restart MySQL: sudo systemctl restart mysql

PHP-FPM Tuning

Edit /etc/php/8.2/fpm/pool.d/www.conf:

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

Nginx Worker Connections

In /etc/nginx/nginx.conf:

worker_processes auto;
events {
    worker_connections 2048;
}

Quick Checklist

Area Setting Value
Queue workers numprocs 8–16
Queue driver QUEUE_CONNECTION redis
MySQL buffer pool innodb_buffer_pool_size 50% RAM
PHP-FPM max children pm.max_children 50
A

AcelleMail Team