How much traffic can a single server handle
Posted on Mar 22, 2011 by Paul White
This question is one of the most asked questions I hear from non IT people. Of course there is no 100% answer to this. But what we can do is go through all the different bottle necks in a server and its network, to figure out the theoretical maximum performance of a server.
First thing to understand is your server will only be as fast as its weakest link. In this discussion we are going to forget about the fact that every application will have different demands on your system's resources, and instead we are just going to focus on the theoretical maximums of your hardware and the network its running on.
Bandwidth / Transfer Maximums
Asuming your network is awesome ( most are not ), The typical Colocated / dedicated
Server will be on a 100 Mbit port. This means your server can transfer data at 100 Mbits per second. For those of you who are used to data in storage terms, divide this number by 8 to get the byte value. Which is 12.5 Mbytes / second. This means you if you were maxing out your 100 Mbit port your transfer would look like this.
- 12.5 Mbytes / second
- 750 Mbytes / minute
- 4.5 Gbytes / hour
- 1.08 Tbytes / day
So in theory your server's Network port can handle a maximum of 1 TB of transfer per day. To put this into perspective My server only does about 14-15 GB / day, and its running about 50 websites
Then of course if your datacenter has you on a 1 Gbit port you can multiple all these fixtures by 10. But of course keep in mind that most will not give you a 1 Gbit port. Sometimes datacenters ( really cheap guys ) will only give you a 10 Mbit port. For average websites
this is fine. If you need to handle streaming videos ( adult sites ) then you might want to have at least a 100 Mbit port. Even though your server can move data at pretty high speeds. This is much slower than your server's disk drives.
Keep in mind I am assuming you went with a good datacenter ( not cheap ). If you went with a dedicated
server at godaddy
, then your biggest bottleneck will likely be their oversold network. There is a reason they offer dedicated
servers for so cheap, because their network will artifically limit
Even though a 7200 RPM SATA
drive can do 80-90 Mbytes / second linear reads. Most of your server's requests are not going to be linear. You will have multiple requests coming in for multiple files. Some big some small. What really matters if your maximum IO. If you are running your server off 7200 RPM SATA
drives then Disk IO might be what limits your server's speed. Especially if you are running any relational Databases ( MySQL
, SQL Server, Oracle ). If you want your server to move fast, then SSD
drives are the way to go. A Raid
10 configuration will maximize both speed and reliability. Running some OCZ Vertex 2 SSD
drives in Raid
10 could yeild 500 Mbytes Read / Write and 50K IO/s. Compare this to Mechanical SATA
drives where your IO will max out around 100 IO/s
Even thought the reliability of SSD
drives are still brought into question. I have been using them on both my workstation and another client system for well over 6 months now. Thus far no issues.
If you want maximum speed its important that your server have at least double the amount of memory of its maximum usage. Meaning if your server likely to not exceed 4 GB of memory consumption then you need at least 8 GB of memory. This is because when your windows server goes over 50% usage on memory, it starts to rev up the page file which causes additional stress on your system.
In today's servers, websites
are well optimized for multiple cores and threads. For example I have 50 websites
running on my server. Each website gets its own instance of W3WP.exe ( IIS worker process ). This allows each website to handle requests independently of one another. There are also various other services and processing running. The more processing threads you have the better your system will be able to handle multiple tasks. So if you have a dual Intel Xeon system. With each Xeon chip having 4 cores with 2 threads each. This means your server can handle up to 16 threads at once. Normally CPU is the last bottle neck you will reach. Even if you have an older server, The CPU's from 5 years ago are still very powerful.
No Comments have been submitted