Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

This is a completely hypothetical question that myself and a colleague have been wondering/debating about, and we thought some of the knowledgeable people at SF could shed some light.

Say, for example, you have an ad server that delivers around 10 million ad impressions per day. Utilizing the linux, nginx, memcached, MongoDB (or similar NoSQL database), highly optimized code, and a CDN, could it be reasonable to assume that a dedicated server could handle this all by itself (we are talking about a fairly good sized dedi with anywhere from 10-16GB of RAM and a 12 core xeon processor)? The main activities here would be serving the static banner ads, and doing some quick calls to the database to select an ad and update impression and click stats. Any thoughts?

share|improve this question
    
I think this is too vague. Worst case, I'm sure you could run it on a "single" IBM System z Enterprise system... –  Ward Jun 8 '11 at 5:46
    
What other details are you looking for? I listed just about everything I could think of. Besides, it is a hypothetical asking if it could be possible at all, I'm not trying to ask about a specific platform on a specific server. Why would I get a down vote for this? –  James Simpson Jun 8 '11 at 14:46

1 Answer 1

It's a pretty vague question, despite lots of details and buzzwords, but I would say "definitely maybe."

16GB isn't all that much for a server anymore (my desktops have 16GB, by comparison; I rarely deploy less than 32GB in a server)... and depending on your variety of impressions, you might consider SSDs or ramdisk or some combination to improve access time for db and images. I/O is likely to be a stronger point of resistance than RAM, although you could easily get a 32GB server and devote more RAM to memcache.

share|improve this answer
    
Are you saying that in relation to the database or also for the delivery of the actual images. Would a CDN not be enough to alleviate a substantial amount of load off of the server since the vast majority of requests will be static files? –  James Simpson Jun 8 '11 at 2:08
    
@James Simpson - And how do you keep the records? The database has to write something for each impression. –  Mircea Vutcovici Jun 8 '11 at 2:47
    
Right, the scenario calls for a MongoDB database to be used. Presumably a new entry would be made for each click, but counters could be used for impressions, separated by ad unit and zone. –  James Simpson Jun 8 '11 at 2:53
    
James: Your cdn may still request a huge number of images... it wouldn't be unusual for Akamai to pull an image 100+ times (once per node on the network). And they may all come "at once" or close to it. –  Robert Novak Jun 9 '11 at 21:16
    
And I don't know MongoDB very well at all, but I'm assuming you're still writing data of some sort to disk, as well as any logging for the webserver. Probably about 115 server log entries and 115 impression log writes PER SECOND. So I'll stand by my belief that i/o contention will bite you in a painful way. –  Robert Novak Jun 9 '11 at 21:19

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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