How much traffic can a single server handle
Posted on Mar 22, 2011 by
Paul WhiteThis 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
Disk IO
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.
RAM
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.
CPU
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.
13690 Visitors
13690 Views
Discussion
No Comments have been submitted