Server Management

Scaling for 100K+ Emails Per Day

December 20, 2025 1 min read 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

AcelleMail Team

Verified author
Email marketing experts · AcelleMail.com

Engineers and marketers behind AcelleMail — the self-hosted email platform powering thousands of senders. We share what we learn shipping deliverability infrastructure, automation, and analytics so you can own every step of your email program.

Related Articles

More in Server Management

View all →

Ready to start sending?

AcelleMail is the self-hosted email marketing platform you control end-to-end.

View Pricing