I originally asked this question on AskUbuntu, but I haven't gotten any replies so I figured I'd also ask here.

I am looking to set up an e-mail server with Ubuntu Server, although I am open to alternate operating systems if you have any suggestions that may perform better for my use case. I will have some 19,000+ devices using it to send and receive e-mail. The majority of these devices will probably not be heavily used, as only a few of our clients use the e-mail feature in these devices.

Based on the recommendation of another StackExchange user, I will likely be setting up virtual mailboxes for these devices to cut down on resource usage.

My planned software stack for the mail server will be Postfix, Dovecot, and MySQL. If there are alternatives that would perform better for my use case, please let me know.

The current usage data I have from our old system shows about 14GB of data across 7,684 messages received and 22GB of data across 11,321 messages delivered per week, adding up to around 56GB across 30,736 messages and 88GB across 45,284 messages received and delivered per month, respectively. As a rough estimate, I would say that the server will probably be sending/receiving around 100 to 200 GB across around 100,000 messages per month.

I do not need a large amount of storage per mailbox. The devices receiving mail will only be looking at the messages once to parse them for simple text-based commands. Sent mail does not need to be stored on the server at all, and received mail will be deleted from the server as soon as it's processed by the device.

Based on these figures, I would like to know what the minimum system requirements would be for the server to be able to handle this volume of messages/data smoothly.

  • What is the max messages peak expected (ex. per second) and what is the expected fault tolerance? Sep 28 '18 at 19:00
  • @Piotr Falkowski I only have statistics down to an hour. The peak messages received in a single hour that week was 608. Peak messages delivered in a single hour was 781. If we combine those figures, that's roughly 23 messages processed per minute during the peak hour, although it could be substantially higher depending on when during that hour those e-mails were actually sent/received (I unfortunately do not have the data for that.) Fault tolerance is pretty low as we need the system to be up and running at all times.
    – ag415
    Sep 28 '18 at 21:47
  • Sorry for asking, but without this info the recomendation can't be accurate - how low? Do you plan on real time full redundancy? If yes, than how many copies? Goelocation - only one, or many? There are many flavors of 'low fault tolerance'. But from what you said it looks as usual bussiness clients, where values at stake are under 1kk / no legal binding like for hospitals, airfields etc.? Sep 29 '18 at 21:33
  • Also - what is the budget and do you already have storage matrix in place, or this question is also about this? Sep 29 '18 at 21:47
  • @Piotr Falkowski I haven't really made any concrete plans for redundancy as of yet. At the moment, I'm just trying to determine the requirements for a single machine. I may set up redundant machines with those same requirements as needed once I know the requirements for the main machine. As far as the fault tolerance; these are SCADA devices that communicate with other machinery in factories, power plants, etc, so they need to be able to communicate reliably in a timely manner. I am not sure what you mean by storage matrix. As far as budget, I don't think the company wants to spend >$200/month
    – ag415
    Oct 1 '18 at 23:05

If you are going for cloud solution, processing power is the main concern, as opposed to the network bandwidth - which would be primary concern if you'd be buying server yourself. The throughput you specify should be easily handled by any modern PC. Let's focus on the peak throughput - you calculated it is 23 messages/min, let's make it 100 for a pessimistic scenario. As the single outgoing message is at max 10MB, that means a pessimistic 1GB/min ~= 17 MB/s.

For minimal requirements & recomendation:

CPU: I would reccomend any at least quad physical core processor with benchmark value at least 10 000 here: https://www.cpubenchmark.net/high_end_cpus.html

RAM: the second most important component. I would recommend 8GB minimum - it will depend though on what distro you choose and specific software. Also - you mentioned databse, yet you said you will not be storing the e-mails - the database caching can take considerable amount of RAM, so if you plan on using databse only for logging, 8GB should suffice, but not for much more.

Mo-Bo, PSU and other components are not a concern if you go with hosting.

Comparision, for the on-site server:

So with a budget less than 200$ a month, you can calculate, that 2000$ server will reach a full ROI compared to hosting provider after 10 months, excluding electricity and upkeep cost.

Would you like to include electricity and faulty drive(s) swap: The electiricty cost can be estimated at around 400$ per year serverpowerusage. This makes 12 months of ROI. According to this article you can expect 0.1 failure rate in two years per drive ~= 1 faulty drive in twenty years. This is negligible.

Also, you need to calculate the cost of man-hours to setup and maintain, and theese are the biggest. There is also a bigger chance of data loss and problems, would you forget abiout spare PSU, ECC RAM or disk swap. You need to calculate it yourself.

Would you consider buying the server, that's what I'd reccomend paying attention to:

CPU - it's not a bottleneck in this usage scenario assuming you buy any decent new server, but the older platform you will get, the more troubles in the future you will have upgrading. I'd say go with latest chipset, leave one socket empty and buy cheapest XEON for the second. It will be idle anyways most of the time.

RAID support and hot plug of HDD and PSU is a must. Redundant PSU is a must also.

As for RAM - just remember to buy ECC ram - you have a server on site, so you can easilly increment. Start with one stick of 8GB or 16GB. More important is the board, which should have planty of space to add new RAM dies (12-24 ideally).

Whichever way you'll go: keep in mind the 3-2-1 backup mantra: 3 copies at 2 different media with one copy at different location.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.