10Mbps on web server

My web hosting provide dedicated web server with 10Mbps Unmetered Bandwidth in my local country, which hardware do you think is feasible for handling up to 1 millions user per month like eBay or popular those jobs portal site?


Would you recommend me to upgrade more memory ram too? The staff quote at least SGD$1,000 per month which I think is a bit too expensive.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

It totaly depends on what you are providing.

eBay does a lot of database lookups. Then you need fast disks and memory.
If you have a huge sql-query, you need more processing power.

If you use database in the end, use fast disks, more memory and good cpu's
If you server mainly static content, just use good cpu's and good disks. (If you "only" have 10Mbps, you might want to turn on compression, and that use cpu power.)

If you need more info, please provide more inisght to what kind of data you are providing, and in what way.
proyb2Author Commented:
erm, your last para mean by technical question or the information for end user?
What kind of backend will you be using in terms of the data you will provide.
is the data static?
Is it dynamic? Dynamic in what way? Who will change the data, and why. What kind of data storage are you going to use? Database? Filebased?
Are the users going to do searches? If so, in what way?

Do you think you can handle the data you want to provide over a 10Mb? Even without using compression?
Should the system be highly responsive, or are delays of 0,5 - 2 seconds allowed?

As you can see, there are a lot of questions to be answered before you can be given a good answer.

If you want an  optimized answer for a system that can handle growth and can deliver on peak moments, you need a more specific solution.
And there are a great number of considerations.

Our company bought one of the most expensive disk solutions, but because it was configured wrong before first use, we get only half the performance it is capable of delivering.
Because of this we have just good enough performance. And changing the configuration now, is such a great effort, and would require huge downtime.

You might just want to get a server that is just below high-end, and that might do the trick for you. So you don;t have to investigate any further.
But if you want a tuned solution, you need to gather a lot of intel.

Another apporach:
1.000.000 / month => 33.000 users per day
if they are evenly distributed around the day, you get around 1400 users an hour. That is one user every 2,5 seconds.
If the users looks at a page for 10 seconds, before going to the next, and does not look at more than 10 pages before leaving, you can have a low - end machine.
But if you have only 12 hours a day for all this activity, or you have more page-hits, or the users gets to search, or you want do statistics on the activity of these users, then you might want to get at least a quad core. With lots of memory.
Expert Spotlight: Joe Anderson (DatabaseMX)

We’ve posted a new Expert Spotlight!  Joe Anderson (DatabaseMX) has been on Experts Exchange since 2006. Learn more about this database architect, guitar aficionado, and Microsoft MVP.

proyb2Author Commented:
my backend is mysql, while I noob about measuring performance in networking except every other IT.

Most of the data will be retrieve and write to db and most of the time, they will download PDF around 1-5MB.

For you experience, what is your company server spec?
If those users only download pdf's than you can handle the load with a rather new 2 core processor. And medium speed disks (something like 50MBps disks or newer)

But since you don;t want to slow down when there is a sudden increase of use, i suggest a quadcore.

Because of the 10Mbps (wich in reallife turns to around 1MBps), you preferably want to turn on compression. With a quad core that is no issue at all.

(i just tested to compress some pdf's i downloaded, and that gave me about 30% reduction. So compressing your pdf's will reduce your bandwidth need, at the expense of cpu-power)

If you are running the databases on the same server as your webserver, you should go to a quadcore immediately in this situation.
(We are running webbased services to our customers. We handle at about 50 simultanious users over a 10Mbps internetline. Our ssl encryption is done using a reverse proxy server. We have a virtualized ms-sql server with 2 cores. Our internet line is less than 8% loaded (on average))

Because you expect more load (than us), but with little database activity, using more bandwidth, you should go for more cpu's.
Those cpu's can help to make the most of the bandwidth (if using compression) and generate quick responses.
Because of the rather static contents, you don;t need serious amounts of memory. But since you do have a lot of users, you can propably handle it all in 4GB of memory. But since you want to have a good response under load, i suggest go for a 8GB machine (or more).

Does this help you?

I can give you our specs, but that does not help you. Our setup is completely different from what you are going to set up.
I give you some examples, to compare that specific item. But that is it.
We develop software. Some of hte software is used over the internet by our clients. Some of the software is used entirely by the customer itself. We have AIX and Vmware and VAX and around 100 developers. Our customers that do use our products over the internet are low-bandwidth users but do genereate peak loads on our sql servers.
As far as i read your request, you will not do heavy sql things. Just simple read and writes.
You have loads of users, we have little. But i had experience with 400 simultanious users in a webbased examination, wich ran great with a single core cpu.
So all in all, my estimates are based on the assumptions you provided me the data for.

Best advice i can give you is to test what you are going to provide to the clients/users where you come as close to the real thing. And you will definitely hit some bumps. Expect those!
And create solutions when you hit them. Sometimes, you just need bigger disks, sometimes you will need to tweak some webserver settings to handle the users. And so on.
Because of the users you are expecting you might also consider to setup one or 2 reverse load-balancing proxy servers. That will direct the requests to 2 small webservers. And use a big backend database server. So you have 1 reverse proxy load balancing server (1 cpu and 1 GB  memory, slow disk), 2 webservers of around 1 cpu and 1GB memory and slow disk each that each handle about 50% of the web-requests, and 1 database server, that handles all of the database queries with at least 2 cpu's and 4GB memory that is highly optimized for your usage with fast disks.

Al recommendations so far has been made with the assumption of stand alone hardware without virtualization. If you want to use virtiualization, there are other things to consider as well.

As you can read from the above, there is not a simple answer. Most of the time you can get away with generic answers. But you have 1 million users a month and 10Mbps internet line. And than you need more specialised answers.

Just a quick check on your internet line capacacity:
1.000.000 times 3MB PDF files (average) = 3.000.000 MB data over a 1MBps (=10Mbps) line. So you need at bare minium 3.000.000 seconds to transfer all this data.
30 days deliver 24 hours * 3600 seconds. 30*24*3600=2.592.000 seconds

Your internet line cannot handle the expected data!!!! Your users will be seriously waiting for the data to download, because your internet line will be fully loaded!
Even with othe optimizations, most of the times 10Mbps is not enough for you to hanlde the requests.
Even with more and better hardware, people will not like the performance and some user will not be able to use your service.
You need at least a 15Mbps line to have an acceptable internet performance.

Make sure you understand teh difference between Mbps and MBps
I use BOTH of them in my answers.

A internet line that provides 10Mbps is a 10 Mega bit per second line.
Since that is the raw capacaty, you need to compensate for the overhead that tcp/ip has.
Generaly spoken: a 10Mbps line, can easily provide a 1MBps (1 MegaByte per second) data transfer.
So on average, the download of 1 PDF of 1 simultanous user takes 3 seconds.

But you will have at least 15 simultanious users. They will all be in different stages to get to the download part. So expect to have at least an average download time of 1 minute for a 3 MB pdf file, with only 15 simultanious users.

If all of your users are from the same time-zone, and you expect them to do their downloading in about 10 hours, you should multiply all my suggestions by 2.4!

Then you need:
at least a 40Mbps internetline.
a 8 core machine, with 16GB (if you just use 1 server)
1 proxyservers (1 cpu, 1GB), with 4 webservers (1cpu and 1GB and fast disks) and a heavy duty database server with 4 cpu's and 8GB and fast disk)
It all depends upon the amount of money you want to spend..
then you must determine the failover and redundancy that you require
then you determine what your software is capable of.. example can it support multiple web servers
then you start looking for machines that will cover those bases..
You might even want to consider virtualization..
proyb2Author Commented:
Nice, that now I have a better understanding...

I found this web hosting company provide 1mbps Guaranteed bandwidth (Backed with 40mbps Burstable bandwidth) on dedicate server. Mean high load will burst up to 40mbps?


Do you think Hardware Raid 1 (Redundancy) + Backup tape would be sufficient instead of Raid 10 for most organization?
well most use raid 5 and raid 1
it would be fine.. but with a virtual solution you can have snapshots and such so if it fails because of a software update (from you) or from some other source you could just revert back to the snapshot and all would be running.   Tape drives are becoming sort of outdated..   many big sites will use fiber channel and backup to other server / hard drive arrays  but again it depends upon your $$ and setup and wishes.. all of what you mentioned would work.

make sure the provider gives you a CIR  committed information rate.  (this is how much bandwidth he guarantees you will be able to move 100% of the time )  not just burst..

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
proyb2Author Commented:
Great information on network.
thanks for the points..
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Services

From novice to tech pro — start learning today.