Forum OpenACS Q&A: Throttling bandwidth per site...

Request notifications

Posted by Matthew Geddert on
Hello, I am new to openacs development, but finally after 3 jobs on MS with SQL Server and Access backends I get to try it out. What I was wondering is how to throttle bandwidth usage per site. We have an Enhanced ADSL line, with dedicated 384k upload speeds (and 1.5 – 6 mbps download)… by my estimates this should easily be enough for our site because we won’t be presenting multimedia content. The problem is I will be running two websites, one email server (with about 35 active users), as well as internet browsing functionality on this connection.

What is the best way for me to dedicated a certain amount of upload speed to each service. Ideally I would like 128k upload dedicated to internet browsing and email hosting, and 256k split between the two websites. Money is a very significant factor here because we are non- profit – hence using this hosting solution instead of co-location… so nothing over $1000 would be acceptable. I ideally would like to use standalone cabele/dsl routers for this solution… I would like my boss to be able to deal with problems when I am not here, and running a Linux box as a router is beyond her abilities… thus I would like the webserver to be independent of the network functioning.

Can it be throttled on the web server? Should it be throttled on something like a cisco manage switch?

Posted by Don Baccus on
There's no throttling in the webserver, and there's really no way for a web server to do that, AFAIK. I don't think the POSIX standard for sockets includes that functionality (if I'm wrong, someone will correct me I'm sure).

There's an alternative solution you might consider - $25/month OpenACS hosting offered by one of our community members.

You might also just put your site up on your ADSL line and not worry about it. Frankly unless you get a lot of traffic I doubt anyone would notice. When your folks browse sites out in the world, the vast majority of traffic will be downloaded content. When visitors from the outside world brwose your site, they'll be uploading content from it. The two activities won't really clash in practice.

Posted by Matthew Geddert on
Thanks for the response Don. I guess the good old system admin in me (my previous jobs) was trying to think of every possible problem that could happen down the road and plan for it - and at the time i was a systems guy not the network guy, so i didn't deal with problems like this. But then again, that isn't my job any more so i shouldn't worry about it too much. i guess i'll just set it up and hope that no problems arise, i'm guessing they won't but if they do i'll cross that bridge when we get there.

although the hosting plan you mentioned sounds appealing, we are going to need to have complete control of the server for some of the other things i want to run on it... so that solution won't work this time, though i'll keep it in mind for future projects.

Posted by John Sequeira on
I asked this question on the BitTorrent mailing list a few months back. I was directed to the "Linux Advanced Routing & Traffic Control HOWTO", which will work if you're using Linux and acccustomed to harder-core sysadmin stuff than me.

You might also want to look at mod_proxy and mod_throttle for apache. The learning curve should be pretty kind (a 'make' command or two, and a few lines in httpd.conf) to get it proxying and throttling your AOLServer.

FWIW, IIS also supports bandwidth throttling in it's management gui. I have no experience with it, so I can't tell you how, or how well it actually works. But if you have a small business license to back office, MSProxy will probably support the same functionality with probably the shallowest learning curve of all.

My suspicion is that after looking at all this, $25/mo will start to look pretty good. :-)

Posted by Patrick Giagnocavo on
There are freeware ways to do it, involving the use of a Linux or OpenBSD box and two network cards.

Under OpenBSD, you would set up a bridged connection and use the builtin ALTQ program to do bandwidth shaping by protocol.  Everything needed to limit by protocol (eg smtp, http) is built in to the base install of the OS.

Under Linux, there is more than one way to do it.

There is a program from Mikrotik, running Linux, that has a Windows GUI control tool you may want to check out - .  I have not used it but some folks have been happy with it.

Note that if you have each web server on its own IP(even if the same physical server) it gets much easier, since you can set different rules per IP.

Posted by Matthew Geddert on
thanks a lot for the new resposnes. I think i'm just not going to worry about it for the time being, but i'll keep these recommendations in mind for a linux install should the need arise in the future when traffic increases - and luckily i will have an IP address per website hosted.

I'm actually more worried about browsers/downloaders/uploaders in my network filling the connection than users accessing the website, so the solutions mentioned where the router does the throttleing would probably work best for me. As i said in my original post, it would be nice to have a cisco switch do this for me, but i guess i may just have to rely on the good old trusty linux.