Building the ISP Mail System with Roundcube
For a setup emulating around 100 users accessing a Roundcube webmail server, you'll want a balance of resources to handle concurrent webmail sessions, email delivery, and storage for messages. Here’s a guideline for hardware resources to support this experimental environment effectively:
Recommended Hardware Resources
-
CPU:
- 4-6 cores: This will allow you to handle concurrent connections, especially as users access the webmail interface and the server handles SMTP/IMAP transactions.
- Emulated users tend to put moderate stress on the CPU due to encryption (TLS/SSL for IMAP, SMTP) and web traffic, so having multiple cores will ensure responsiveness.
-
Memory (RAM):
- 8-12 GB RAM: Roundcube itself is lightweight, but Dovecot and Postfix will need memory to handle simultaneous IMAP connections. Each user session can consume a small portion of RAM, especially with multiple concurrent mail retrievals.
- Consider 16 GB if you want extra room for scalability or plan to run additional monitoring tools.
-
Storage:
- 200-500 GB SSD: Storage needs can vary, but this range should be adequate for emails and attachments. SSDs are preferable to HDDs for faster I/O performance, which will help with message retrieval and database access.
- Database Storage: Consider at least 50 GB allocated for the MariaDB database, especially if you plan to retain a large amount of mail data.
-
Network Bandwidth:
- 1 Gbps Network Interface: Internal experiments typically don’t need heavy outbound bandwidth, but a reliable internal network interface with 1 Gbps is sufficient for handling mail traffic and simultaneous IMAP sessions.
-
Additional Considerations:
- Load Testing and Monitoring Tools: Include tools like Grafana, Prometheus, or simple Linux system metrics to monitor CPU, memory, and network usage as you emulate load. This can help you identify bottlenecks and tune the configuration as needed.
- Virtual Machine Sizing: If running in a VM, allocate resources as close to physical hardware specs as possible, avoiding overcommitted resources.
This setup will support your experiment with enough headroom to simulate user activity realistically. Let me know if you want further details on specific configurations for any of these components!