Tuesday, November 11, 2008

So, Mailinator's core-duo server now gets 3 Terabyte a month

Its been awhile since I've updated my article The Architecture of Mailinator. That was a long time ago and really and tons has changed. To save you reading that article if you're in a hurry, the crux was that Mailinator was originally based on the unix email program sendmail, which pretty much died at around 800,000 emails a day. And then it discusses the design of the fully custom SMTP server designed for mailinator.

In that article, Mailinator was running on a single AMD cpu and processing 3 million emails a day or so. Well, somewhere in there I got a deal with my hosting company and was running a dual dual-core opteron machine. Mailinator ran on that for about a year as our email load doubled a time or two.

Eventually I needed a server for another project and realized that giving Mailinator that dual-opteron was pretty overkill. So I "downgraded" the machine to a core-duo. Which is where it runs now. In the aforementioned article we were getting 3 million emails a day - now I sometimes see 2 million an hour.

For the geeks out there, this is still of course a highly-multithreaded java implementation often running 4000 simultaneous threads. Pure Java I/O (not that stinky and slow NIO.

Today I got an email from my hosting server that I "surpassed my allotted bandwidth". I'm pretty used to getting subpoena's and such, but not so many of these.

Apparently, Mailinator received 3.1 Terabytes of email in the last 4 weeks.

Thats (ballpark) 480 million emails or so in that 4 weeks. As I've said before, that doesn't compare to any bigger email service, but then again, I bet they have more than one server :) I'll also emphasize that numbers I usually throw up here were measured or calculated by me - that 3T number comes from my provider so I hope its accurate as they want money for it !

Thats a LOT of spam (sure there's web traffic in there which might be hefty in other circumstances, but it doesn't hold a candle against the mail traffic).

I've priced things out and although my server still has plenty of computing capacity left, I'm clearly hitting an artificial (i.e. pay for more) bandwidth limit. It makes far more economical sense to simply get another server (per all pricing schemes I find) than to buy more bandwidth on this one.

So, someday I'll get around to writing the next "Architecture of Mailinator" article and although it almost sounds funny to me after all this time, I'll likely be talking about "both" Mailinator servers. Not just our trust little core duo.

4 comments:

PanMan said...

If the server is still holding up in terms of processing power, it sounds like overkill to get another server, just for the "free" bandwidth that comes with it. Doesn't your provider understands this?

Michael said...

I'm not sure that this would actually be cheaper, but you should look into Amazons EC2 - it's a pay-for-use cloud computing network that'll let you run just about anything you want, and absolutely doesn't have a bandwidth price cap - their first tier of bandwitdth pricing ends at 10TB, to give you a sense of scale.
http://aws.amazon.com/ec2/#pricing

I pulled up the EC2 Calculator, and assuming one medium machine running 720 hours (24*30) along with 2.7TB in and .4TB out (total guesses, but whatever) it'd run you a little shy of $500 a month.

Scott said...

How did the McColo takedown impact things for you?

Anonymous said...

Would it be suitable to change the allowed domains /random subdomain names weekly/daily? One mail address won't live long anyway. That would force spam scripts update up to a level that can not be automated. At least it may save you some bandwidth.
Keep up the good service!
(V) - A Denevér