| « Botnets, DDoS, the Internet and You | Server Reliability – More to it then meets the eye » |
November 3rd, 2006 [by Doug Alder]
As someone involved in server sales I constantly come across prospective customers who are new to hosting and are confused about bandwidth. I hope this post will help make this subject a little clearer for them.
The first thing to know is that bandwidth is really not a good term. Bandwidth refers to the available spread of connection speeds available. Bandwidth is a measure of capacity not a measure of quantity. For example, if you think of capacity in terms of radio frequencies, where the term bandwidth originated, then the range of frequencies between the lowest frequency and the highest frequency offered would be the available bandwidth. In data transfer when you have say a 10Mbps connection your available bandwidth is 0 to 10Mbps, capacity not quantity. A better term for what the hosting industry refers to as bandwidth would be data transfer. However, as bandwidth has become the de facto norm for describing how much data you can transfer over a given connection over time we will use that term here to avoid further confusion.
First a few terms. Data transfer, which of course is what the net is all about, is measured in bits (b) per second. In telecommunications a bit is the smallest unit of information that can be transmitted. This can be stated as Kbps (kilobits per second), Mbps (megabits per second – the most common term in use), or Gbps (gigabits per second). It is not measured in bytes (B) KBps (Kilobyte per second), MBps or GBps. Connection rates are referred to as bit rates.
There are two basic ways bandwidth is marketed to consumers, metered (where you pay for each GB of traffic in and out of the server) and unmetered (where you pay a flat fee per month). Those in turn are either dedicated connections or shared connections.
Shared Connections
When a host says you can do X number of GB per month on a hosting plan you are pretty much guaranteed that you are on a shared connection. In most, but not all, cases that connection will be a 10Mbps or a 100Mbps connection out to the network edge and it will be oversubscribed. That is, the host will put more customers on the line than they should, banking on the odds that traffic will be relatively evenly spread out and that no-one will be using very much. This is similar to the way that dial up ISPs “sell” access to their modems. A 16:1 or 20:1 ratio (20 users per modem) is an industry norm. In that case the ISP banks on only one in 16, or one in 20, of their customers wanting to be online at any given moment. If more than that try they get a busy signal and can’t get on. Similarly when a host uses shared bandwidth and over sells access to it, their customers will suffer poor connection rates when too many people try to use that connection at the same time, or a customer(s) publishes multimedia data that requires a large part of the pipe. On shared bandwidth you do not have any guaranteed rate of connection, it is first come first served.
This type of connection can work for you if you have a low traffic site and a site that does not require a certain connection rate to be there for it at all times. Customers on a shared 100Mbps connection may see connection rates for their server
vary from 100Kbps to 5Mbps depending on the time of day, how oversold the line is, and what type of content the users on the line have. Generally these types of connections result in overall slow and unpredictable connection rates.
Dedicated Connections
When you, as a server operator, or hosting provider, want to count on a given connection rate being available to you at all times you need to be on a dedicated connection. A connection that you do not share with anyone else. If your provider gives you a dedicated connection you have a CBR (that is a committed bit rate also known as constant bit rate) of approx 70% of your peak bit rate. If your connection rate is capped at 10Mbps that means you can count on 7 Mbps always being available to you with the ability to burst as needed to 10Mbps. Dedicated connections are particularly important for any website delivering multimedia content and it is on these type of connections that we’ll deal with here.
Getting the Right Connection Rate
As mentioned earlier connection rates are measured in bits per second and the amount of data transfered is measured in bytes, generally expressed as gigabytes. If you are hosting multimedia you need to know how many GB of traffic (commonly called bandwidth) you expect to move over your server’s connection over the course of 30 days in order to determine the connection rate you need in order to allow for that much traffic.
Time for an example. A connection rate of 1.5 Mbps is theoretically capable of moving 474.609375GB of traffic in each direction (ingress – egress) over the course of 30 days. So if you expect your traffic to be less than that you know you can probably do OK on a 1.5Mbps connection. I say probably because it will still depend on other factors such as the number of concurrent users on your site and the amount of data each user moves in each direction. To determine how much you need lets look at someone that wants to operate a streaming audio server. The first pieces of data necessary are how may simultaneous streams will be made available and what rate will the data be streamed at. 28Kbps is more than sufficient for most streaming audio so lets use that and lets say you want 50 concurrent streams. To determine the rate necessary perform the following steps
Open a new Google search page and enter the following algorithm and hit enter
28Kb*50=?Mb
The result you’ll get is 1.3671875Mb so theoretically you could do that on a 1.5Mbps connection, however not really as this is Internet Protocol (IP) and IP packets carry overhead. If you fill the pipe 100% except in momentary bursts you will get packet collisions and thus packet loss causing the server to constantly resend packets. Thus the 70% CBR mentioned above. So to handle that many streams at once you need to allow for that 30% headroom needed to prevent packet loss which means you really need a 2Mbps connection to handle that many streams at once.
What this comes down to is when you are planning your server needs you must have a good idea of not only how much data transfer you will use over time (GB per month), but also what capacity to transfer (Mbps) you may need during your peak times. With a streaming media server that’s relatively easy to figure out as we’ve already shown. With other sites that offer files for download you can estimate the maximum number of concurrent file transfers you expect and then use that with your largest file size to estimate the size of connection you need to cover that contingency.
For example, lets say you are offering a video file for download (but not streamed). Then lets say that the maximum number of concurrent download sessions you expect to have is 50 then you can work it out like this:
Allowing for IP packet overhead that mean you would need a 100Mbps connection in order to give 50 people a 1.5Mbps download rate at the same time.
It’s when you aren’t offering downloads or streaming media that it gets more difficult to determine your needs. At this point you need to consider what the users will likely be doing on your site and measure the amount of data your pages will be sending them. Then figure out the maximum number of concurrent connections you expect to have and work it out as per the last example. However in this case the figure won’t be as accurate because you are not constantly transmitting data to their client, people may be connected to your site but they may just be sitting there reading text and that is not the same as downloading a file or streaming some media content. If you have a relatively static page without a lot of large graphics then you can handle a lot more connections on a given connection rate than you probably estimate. Best advice is do an approximation then cut it back and scale up when necessary. If your estimation is you need a 5 Mbps connection start with a 3Mbps and see how it works before committing to more expensive connections.
To grow your business successfully you need to be certain that your server host can grow with you and can offer you the products you need, when you need them. RackForce offers a wide range of dedicated connection rates, Start with what works and grow as required.
No tags for this post.
November 3rd, 2006 at 1:32 pm
Thanks for that outstanding explanation! Excellent details and well-presented!
However, for my boomer-generation, non-tech-savvy clients I’ll just tell them it’s ‘tubes’.
*grin*
November 3rd, 2006 at 1:40 pm
Thanks Doug
Big tubes – not trucks LOL
November 24th, 2006 at 12:16 am
Hi Doug
Excellent explanation. I myself have never really understood the whole MBPS ratio and this gives me a thorough understanding however I would like you to assist me with a question.
I run a search engine on your dds1000 plan and if I am correct I am on the 1.5mb connection. My max concurrent clients allowed in Apache is about 320.
The other day I had a surge in traffic to the website and what I noticed was that many of my users complained about slow speeds and page timeouts. I assumed that this was as a result of my max connections but reading your blog entry I think it had more to do with the 1.5mb connection.
So, my question is how can I work out how much bandwidth I need for the usage of my site. Mine is one of those difficult ones to work out as I offer no downloads or streaming but rather generic php pages running search queries to the mysql database.
I would say that on average page data transfer is about 25kb per user and at any given time I need to allow for about 200 concurrent users.
This is a very thumbsucked figure but when the site experienced slow delivery rates I think there were between 60-100 concurrent users but I have no way of knowing for sure.
To take this a step further, as well as to explore upgrade options, what sort of connection / bandwidth would I need to allow for up to 2000 concurrent users. Is this even possible without clustering?
Thanks in advance for your response!
Regards
Justin
November 24th, 2006 at 9:10 am
Hi Justin
Thanks. It is a hard thing to get your head around
To work out your problem it is back to Google
25Kb*200=?Mb
is the algorithm to use and that returns
25 kilobits * 200 = 4.8828125 megabits
Given that you need some reasonable headroom you need a 5Mbps connection to cover off 200 users simultaneously pulling 25Kilobits of data. Now if you meant kilobytes (always use a capital B for bytes and lowercase b for bits) you’d need a very big connection, somewhere around 45 to 50Mbps.
I hope that helps
December 10th, 2006 at 8:01 pm
You need a column called “Ask Dr. Bandwidth”
December 11th, 2006 at 5:27 pm
Hi Doug
Sorry for my protracted delay in responding to you. Yes this does help but it seems very concerning for me as I’m not really sure on the path forward for me.
Is it perhaps possible for you to email me so that I can ask you a few more questions in private? I am a current client so helping me map my path forward would be great!!!
Thanks in advance
February 19th, 2007 at 10:03 pm
Very very well explained. This is a very useful article
February 20th, 2007 at 8:55 am
Thanks Hola
June 1st, 2008 at 10:14 pm
You are all right. I agree with the terms sayed.
August 20th, 2008 at 3:51 pm
[...] do you get when you combine an IBM 5300 Quad Core Intel Xeon server with an unmetered dedicated 100Mbps connection? One heck of a multimedia performance machine is what you [...]
October 6th, 2008 at 8:42 pm
[...] Understanding Bandwidth by Doug Alder [...]
July 26th, 2009 at 6:12 am
Please give your thoughts on this article:
http://whreviews.com/unmetered-shared-bandwidth.htm
August 19th, 2009 at 11:09 am
Hi George
Sorry to take so long to respond – for some reason I did not get a notification to approve your comment so was unaware that it was there.
I read the article and for most hosts out there I have to agree with him. There are a lot of smoke and mirrors in the bandwidth game. It does not however apply to us here at RackForce as the connections we give (*with the exception of the Windows 2003 VPS servers) are all dedicated connections and we put no restrictions on the nature of the content that can be hosted on those servers except for SPAM, network abuse and illegal content
Network Abuse
Using the RackForce network in any way that adversely affects other RackForce Customers is strictly prohibited. This includes but is not limited to:
people into releasing their passwords or other confidential information or data), password robbery, security hole scanning, port scanning, probing, monitoring or
testing for system or network vulnerabilities.
are intended to damage, detrimentally interfere with, surreptitiously intercept or expropriate any system, data or personal information.
Illegal Content
Accounts may be terminated that include content or where links are provided to content that:
utilities, warez and software serial numbers or registration codes.
export control, unfair competition, false advertising, consumer protection, issuance or sale of securities, trade in firearms, privacy, data transfer and
telecommunications.
August 31st, 2009 at 8:48 am
But really, Doug isn’t it:
“But speaking of semantics: based on the underlying definition, unmetered bandwidth as it is currently advertised is in fact the old unlimited bandwidth repackaged in a nicer, somewhat less deceiving wrapper.”