Bandwidth Limiting Policies for Web Hosting?
Silas asks: "I run a small website development and hosting company. We're trying to develop creative, fair, but standard policies in limiting the bandwidth of our individual hosting accounts. I seek the opinions of Slashdot readers who have experience as hosting providers or hosting users. More details below. We're running Apache, and have pretty much decided on using mod_throttle as our bandwidth limiting technology. I know it's not everyone's favorite, but it looks great for us. We have less than 200 domains being hosted, all with varying degrees of bandwidth requirements. As you might suspect, we've got our own ideas and have done our own research about the answers to these, but now I'm interested in yours."
"The basic question is 'what's fair and standard' in these areas:
- Our two hosting packages offer 5 GIG/month and 10GIG/month respectively, with the option to upgrade in $5 per 1 GIG/month increments. Other hosting providers seem to be all over the board - what's the average hosting account want/need?
- The policy that seems common is 'allow a certain amount of data to go through in a certain time period, and then start rejecting requests until the end of the time period'. Is that fair? What policies do other hosts use? When is it appropriate to delay the response to a request instead of rejecting it?
- What should the user be able to do automatically in terms of upgrading/controlling their bandwidth usage? If a user is fine with 5 GIG/month but then gets slashdotted, what should their options be (right away, within 24 hours, etc.)?
If referer=slashdot.org then throttle=99% else throttle=10%
If I could set a cap on some of my accounts - I'd like it: I woulden't get a huge bill at the end of the month for over use if any of my sites got 'slashdoted.'
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
Dear slashdot,
I don't really have a problem. I use mod_throttle for bandwidth limiting and I love it. What do you use?
Also, now I will plug my company and get some free advertising on Slashdot's front page. Actually, I paid for this Slashvertisement, but don't tell anybody that!
Sincerely,
SlashLamer
Let the people serve all the pages they want... just charge for excess bandwidth. They get their pages served, and you rake in the $$$.
I would set it up so the users have the option of "after 5gig, ignore requests" or to start paying for extra bandwidth at the normal rate (to a certain point/unlimited).
csoft.net has unlimited transfer, 150 megs and half of their smallest package
I cannot speak to the cost of bandwidth, which is one of your concerns.. However -- there are a few simple things that customers really like:
1) Automatic cut-off. If a customer has 5GB/Month, and cannot afford more, make sure their site goes unavailable and they are not billed. You do NOT need to continue service, they understand! Just make sure point 2 is made...
2) Notification of cut-off. If above customer runs out, they want to know! Make sure they get an e-mail, but more preferrably a call. It's important, very important!
3) Options for automatically extending the plan. Make sure that customers have the option to have their bandwidth upgraded (of course at additional cost) automatically. This is something a lot of customers will ask about, the type of customers who never want their site to go down, regardless if it costs them. Many customers think "More traffic, more profits", and if their site goes down due to exceeded bandwidth usage, they will think its your fault.
4) Be upfront with all of these issues. Many providers arent verbose enough with customers, and it ends up with them being confused. By laying it all on the table, they will see the above strategy and they will like it. It gives them options that are very important.
I think your sites could be given a bit more bandwidth. If they decide to host one .exe file on there of any size at all (not sure why they would, but just for example) - you are looking at that bandwidth going in a few days. I host gaming files and that would easily be used up.
We gave up on throttling. It just doesn't work. And not from a technical standpoint, either. If you are going to do throttling, then you need a web server that does real throttling. The only one I know of is Zeus. It does real throttling, letting you limit the total bandwidth for all of a user's sites to a bytes/sec value. No Apache modules do this. Even thttpd doesn't seem to get this right.
I assume that you want to limit bandwidth that your customers use because the bandwidth to your server(s) is limited (i.e. you don't have a 100mbit connect to the internet). In this case, Apache modules will not do what you want. Someone puts up a 10mb file. That file gets downloaded and uses up all of your outgoing bandwidth. While it is being downloaded, the Apache throttle module refuses other requests. This is obviously not what you want.
So suppose you end up using Zeus, or find some other way to do real throttling. Now what do you set the throttle speed to? 5gb over a month averages a little less than 2k/sec. Say you set it higher, like 20k/sec, and there are ten connections downloading that user's files (which can easily happen with certain browsers). What does the average clueless user or webmaster think? They don't understand throttling. They just think that the website is slow and that your service sucks.
We would throttle down user's sites when their bandwidth ran out. Customers did not understand that they had run out of bandwidth, even though they were notified via email. They just thought their sites were slow. We received a lot complaints about that.
We found that the best thing to do is to not throttle and to presell bandwidth cheap. Our different packages come with different amounts of bandwidth, ranging from 5gb to 180gb. After that, customers can purchase extra bandwidth (for $0.50/gb). Customers receive a notification via email when their bandwidth is running low and again when it is completely gone. When their bandwidth is gone, we redirect their sites to a page stating that they used up all their bandwidth.
This solution is simple and it works. Customers always know how much bandwidth they have left and can buy more at anytime. We never have to worry about users running up a huge bill and not paying it, since everything is prepaid.
Seriously, your a small outfit, if you meter the client's usage you can charge accordingly. Write it into the contract about how much you charge.
If you somehow get a spammer or a Warez site, they make themselves quite obvious if YOU AEW paying attention to bandwidth, have yourself paged when a user exceeds a certain amount and look at what they are doing.
If they got slashdotted, fine, but if your seeing a lot of SMTP going out or large files getting downloaded yank them quick. Upstream vendors don't care about what's coming into your sites, it's what's going out that they charge you on.
Sorry about the writing. Robot fingers, you know? Cliff Steele in DOOM PATROL #23
How exactly did you go about setting this up? Can you go into details?
TIA.
I tried to setup mod_throttle for a site where the requirement was 'No more than 1gig per hour'.
I actually found this incredibly hard to do, it's fine for slowing down the incoming requests when lots of them start coming in, but hard to make it keep track of total traffic served.
I think it should be fairly straightforward using the 'volume' directive, but I could never quite get it to work out properly.
My solution was mod_curb which is dedicated to just doing that. (It doesnt handle virtualhosts yet, but it will do by next weekend.
Personally, I run a high-bandwidth site and have had a few qualms finding a host. I've now settled on Positive Internet here in the UK because of their 'fair' bandwidth/process usage policy. Basically, they have no 'fixed' limits - therefore if your little site gets slashdotted one day (or, as mine did with my previous host, get featured on national television) and has a 'spurt' for a day or so, then they won't mind. But if (as I eventually ended up doing) you consume a significant part of their bandwidth/processor usage (I was constantly in the top 10% on one of their shared servers - and this is for months on end), then they contact you and offer you a 'more suitable product'. I've now got my own dedicated server hosted by them (and, therefore, can eat up as much processor usage as I like), and they'll inform me if I eat up massive limits of bandwidth.
What I guess I'm practically saying, is try for 'soft-limits'. If you have a 'hard limit' of 5Gb/month and someone uses up 5.01Gb in a single month (previous months were less than 2Gb) - would you want to loose their custom? Ok, if the next month is also 5.01Gb (or higher) - then it's "contact customer" time - but just "arbitarily shutting down sites" is, IMHO, not a good idea (unless, of course, they are causing _significant_ harm to your business: ie saturating more than 60% of your pipe on their own - but you should have really noticed that before hand _or_ check the source of the referers: it may just be a spike for an hour or two due to slashdot or similar).
If the average developer website hosting package offers 10 gb (10,000 mb) of monthly transfer and the average webpage weighs .1 mb (100 kb), hypothetically, the following equation gives the account's maximum allowable pageviews per day: (10,000 mb max transfer/month / 30 days) / .1 mb average download size = 3,333 max hits/day given text-only files and no uploading. Besides the consideration of graphics, linked scripts, and uploads, is there any fault in that equation? Do web server packets affect the total number of pageviews the account can handle? It just seems to me that just over 3,000 hits/day would not be enough for a small, but popular website, like a mama/pops storefront or a band homepage, for example. I mean, how would Slashdot's daily pageview count compare to its monthly transfer rate given that equation? How do Slashdot reader websites hold to that equation? Do any experienced sys. admin. here have a better equation to evaluate an account's max allowable pageviews per day? This is obviously an important consideration when building a website for a small organization, an up-n-coming artist, or a personal website.
I'm not sure who your customers are, but one thing I've often wanted when a site is slashdotted is the ability to buy more bandwidth -- if it were cheap ($1-2/GB), I'd pay as a reader. Not sure how hard this would be to implement, but it would be nice.