HELP: Image server requirements?
I'm in need of some expert advise from this lovely community. I'm in need of specifications that would be able to handle the load of images I need to serve.
I have a small gallery site that I've been not really keeping up with but have since decided to focus on.
The load I want to plan for is about 4000 uniques / day visiting about 10 pages on average. Each page will have between 1-3MB of pictures. For these images I want a vps/server serving these files and I'm looking for what's most important when looking at specifications for a static image server.
If you could rank in priority CPU|I/O Speed|RAM and minimum requirements for each, what would they be? What if this was 8000 Uniques / day how would those requirements change?
This is a gross over estimate but I'm looking for recommendations and budget options. I'm no where near these stats and currently have checked out CDN but bandwidth is extremely pricey so that's not an option for me. So other than meeting the 3-9TB b/w requirements what specs would a vps/dedi need to be able serve these images comfortably with least cost.
How many total pics would there be? If there's 10 pages total, that's 30 megabytes of pictures, and this can be held entirely in ram.
If there's 10 pages out of 1000, then it gets a bit more complex.
Well its an ongoing site with more pictures I plan to add. I'm assuming it will be holding 1-2GB of pictures minimum by the time it reaches those traffic values.
For now its being hosted on a blogspot site and images/bandwidth are handled by google, but space is limited and I plan to move it to another medium soon enough.
With your 10 pages/visit thats 80,000 hits per day (or lets say 200-250gb traffic per day, 7tb per month). Thats on average one request per second. So i don't think you need to worry about more than 10-15 concurrent requests. That doesn't really sound like much and i guess Nginx would be able to handle it well (since it's mostly static content). As for the RAM i don't know, but my Nginx with 128mb running Wordpress was able to handle 100 concurrent users or so.
Seriously would you consider offloading the image part to a CDN or even Amazon S3?
I would say 128-256 RAM will be more than enough, space and storage speed is not a problem, you will need some bandwidth tho.
I would estimate it should not cost more than 7 dollars a month.
I'm not sure if you read my entire post but CDN isn't cheap for the bandwidth I plan for unless I'm missing something. 7TB is about 800$/month so please tell me how offloading to CDN is even an option?
So from what I've gathered:
RAM: 128MB Minimum
CPU: ? - would 1 core or 2 cores be recommended on a xen/kvm vs openvz
I/O: ? @gsrdgrdghd would concurrent requests be more of a cpu concern or hdd concern?
@Maounique: If I could get a server with that much b/w for 7$ a month point the way!
@Flux Check out @jarland offer of unmetered bandwidth on a 1Gbps port that should suit you nicely.
I was going to suggest the same
Can you explain how you would get the images offloaded to a CDN for less than the cost of a dedicated server 50-100$? This is with 6-10TB of bandwidth per month I'm talking about. I'm a CDN newbie, but I have used it to offload certain small files when looking at the pricing structure its going to be way more than a small gallery would bring in.
This probably goes without saying, but optimize the hell out of those images. Even just a 20% reduction in filesize nets you over a terabyte of bandwidth a month saved.
I don't think the CPU needs to do anything worth mentioning when serving concurrent requests. So i/o is probably more of a concern (but you don't need a SSD)
@Soylent Thanks for the suggestion, I have been planning to do such. But the way my gallery site is setup only thumbnails are shown initially, but I make it easy to browse through the full size photos. I guess I could have lower quality images on the site and upload a gallery zip to a free file host as an alternative.
I've ordered a vps from @jarland I'll see how I do with 2 core and 512 ram. But thanks to all for the help.
(Except those people who suggested CDN without explaining how I would be able to afford the bandwidth... Still waiting on those answers)