Web Hosting Talk







View Full Version : mod_bandwidth and other bandwidth management tools for linux ?


eva2000
08-05-2000, 05:15 PM
okay seems this forum's new look bringing me back more now :)

i have a dedicated red hat linux server on rackspace.com which i manage solely from webmin control panel.

now i have a small network of sites (36 domains) and plan to offer free hosting for a select few sites of the same genre. But i want to limit the bandwidth for each virtual site on full domains and/or subdomain hosting.

i was told mod_bandwidth module for apache is what i need http://www.cohprog.com/mod_bandwidth.html

but i have no idea of installing it or even using it ? can this module be used through the webmin control panel ?

how does installing this module effect existing web sites (11 domains) on my server ?

------------------
Australian Neon Genesis Evangelion (http://www.eva2000.com)

scottlaw
08-05-2000, 05:43 PM
It is very easy to install... But hey, you are with Rackspace and they will install it for free :)

I have never used Webmin... But I can tell you it requires adding a few lines to your httpd.conf file for the virtual hosts you want to limit or a directory entry if all the sites are under a specific directory (wildcards are also allowed).

It can easily be done, but I would have Rackspace do it for you...

Scott

eva2000
08-05-2000, 05:54 PM
thanks, being absent minded i now remember rackspace telling me they can install it for me... but they say it's unsupported ... and my problem is how to use it ? i mean there ain't a 'how to guide' for it anywhere ? even the author's site says manual coming soon and emails to him have remained unanswered for 2 months now :(

more on the opeation of it ? how exactly is it used ?

i have all my domain sites root directories like this

/home/username/site1/htdocs
/home/username2/site2/htdocs
/home/username3/site3/htdocs

wher site1, site2, and site3 are the domain names.

subdomains on my server for site1 for example are set like
/home/subdomainuser/site1/htdocs

the reason is i use rackspace's website wizard to create new sites

------------------
Australian Neon Genesis Evangelion (http://www.eva2000.com)

Admin
08-06-2000, 06:37 PM
It's seems to be a very uncommon module probably due to it being useless (maybe I'm wrong, but there doesn't seem to be a large number of users), anyway I tried Deja.com and it came it with a few references, not sure they came be of any help but here's the link anyway.

http://www.deja.com/dnquery.xp?QRY=mod_bandwidth&ST=MS&svcclass=dnserver&DBS=1

Wait a min the documentation is in the .c file here you go

[quote]
* Server configuration directive :
* --------------------------------
*
* - BandWidthModule
* Syntax : BandWidthModule <On|Off>
* Default : Off
* Context : per server config
*
* Enable or disable totaly the whole module. By default, the module is
* disable so it is safe to compile it in the server anyway.
*
* PLEASE, NOTE THAT IF YOU SET A BANDWIDTH LIMIT INSIDE A VIRTUALHOST
* BLOCK, YOU ALSO __NEED__ TO PUT THE "BandWidthModule On" DIRECTIVE
* INSIDE THAT VIRTUALHOST BLOCK !
*
* IF YOU SET BANDWIDTH LIMITS INSIDE DIRECTORY BLOCKS (OUTSIDE OF
* ANY VIRTUALHOST BLOCK), YOU ONLY NEED TO PUT THE "BandWidthModule On"
* DIRECTIVE ONCE, OUTSIDE OF ANY VIRTUALHOST OR DIRECTORY BLOCK.
*
* - BandWidthPulse
* Syntax : BandWidthPulse <microseconds>
* Default :
* Context : per server config
*
* Change the algorithm used to calculate bandwidth and transmit data.
* In normal mode (old mode), the module try to transmit data in packets
* of 1KB. That mean that if the bandwidth available is of 512B, the
* module will transmit 1KB, wait 2 seconds, transmit another 1KB and
* so one.
*
* Seting a value with "BandWidthPulse", will change the algorithm so
* that the server will always wait the same amount of time between
* sending packets but the size of the packets will change.
* The value is in microseconds.
* For example, if you set "BandWidthPulse 1000000" (1 sec) and the
* bandwidth available is of 512B, the sever will transmit 512B,
* wait 1 second, transmit 512B and so on.
*
* The advantage is a smother flow of data. The disadvantage is
* a bigger overhead of data transmited for packet header.
* Setting too small a value (bellow 1/5 of a sec) is not realy
* useful and will put more load on the system and generate more
* traffic for packet header.
*
* Note also that the operating system may do some buffering on
* it's own and so defeat the purpose of setting small values.
*
* This may be very useful on especialy crowded network connection :
* In normal mode, several seconds may happen between the sending of
* a full packet. This may lead to timeout or people may believe that
* the connection is hanging. Seting a value of 1000000 (1 sec) would
* guarantee that some data are sent every seconds...
*
* Directory / Server / Virtual Server configuration directive :
* -------------------------------------------------------------
*
* - BandWidth
* Syntax : BandWidth <domain|ip|all> <rate>
* Default : none
* Context : per directory, .htaccess
*
* Limit the bandwidth for files in this directory and
* sub-directories based on the remote host <domain> or
* <ip> address or for <all> remote hosts.
*
* Ip addresses may now be specified in the network/mask format.
* (Ie: 192.168.0.0/21 )
*
* The <rate> is in Bytes/second.
* A <rate> of "0" means no bandwidth limit.
*
* Several BandWidth limits can be set for the same
* directory to set different limits for different
* hosts. In this case, the order of the "BandWidth"
* keywords is important as the module will take the
* first entry which matches the client address.
*
* Example :
* <Directory /home/www>
* BandWidth ecp.fr 0
* BandWidth 138.195 0
* BandWidth all 1024
* </Directory>
*
* This will limit the bandwith for directory /home/www and
* all it's subdirectories to 1024Bytes/sec, except for
* *.ecp.fr or 138.195.*.* where no limit is set.
*
* - LargeFileLimit
* Syntax : LargeFileLimit <filesize> <rate>
* Default : none
* Context : per directory, .htaccess
*
* Set a maximal <rate> (in bytes/sec) to use when transfering
* a file of <filesize> KBytes or more.
*
* Several "LargeFileLimit" can be set for various files sizes
* to create range. The rate used for a given file size will be
* the one of the matching range.
*
* A <rate> of "0" mean that there isn't any limit based on
* the size.
*
* A <rate> of "-1" mean that there isn't any limit for that type
* of file. It's override even a BandWidth limit. I found this usefull
* to give priority to very small files (html pages, very small pictures)
* while seting limits for larger files... (users with their video files
* can go to hell ! :)
*
* Example :
* If the following limits are set :
* LargeFileLimit 200 3072
* LargeFileLimit 1024 2048
*
* That's mean that a file of less than 200KBytes won't be
* limited based on his size. A file with a size between
* 200KBytes (included) and 1023Kbytes (included) will be
* limited to 3072Bytes/sec and a file of 1024Kbytes or more
* will be limited to 2048Bytes/sec.
*
* - MinBandWidth
* Syntax : MinBandWidth <domain|ip|all> <rate>
* Default : all 256
* Context : per directory, .htaccess
*
* Set a minimal bandwidth to use for transfering data. This
* over-ride both BandWidth and LargeFileLimit rules as well
* as the calculated rate based on the number of connections.
*
* The first argument is used in the same way as the first
* argument of BandWidth.
*
* <rate> is in bytes per second.
*
* A rate of "0" explicitly means to use the default minimal
* value (256 Bytes/sec).
*
* A rate of "-1" means that the minimal rate is equal to the
* actual rate defined by BandWidth and LargeFileLimit.
* In fact, that means that the final rate won't depend
* of the number of connections but only on what was defined.
*
* Example :
* If BandWidth is set to "3072" (3KBytes/sec) and MinBandWidth
* is set to "1024" (1KBytes/sec) that means :
* - if there is one connection, the file will be transfered
* at 3072 Bytes/sec.
* - if there is two connections, each files will be transfered
* at 1536 Bytes/sec.
* - if there is three or more connections, each files will be
* transfered at 1024 Bytes/sec. (Minimal of 1024 Bytes/sec).
*
* If MinBandWidth is set to "-1" that means :
* - if there is one connection, the file will be transfered
* at 3072 Bytes/sec.
* - if there is two or more connections, each files will be
* transfered at 3072 Bytes/sec. In effect, the rate doesn't
* depend anymore on the number of connections but only on
* the configuration values.
*
* Note that the total transfer rate will never exceed your physical
* bandwidth limitation.
*
* Note : If both a "BandWidth" and a "LargeFileLimit" limit apply,
* the lowest one will be used. (But never lower than the
* "MinBandWidth" rate)
*
*

reg
08-06-2000, 06:37 PM

Jag
08-06-2000, 07:50 PM
Damn, is that nasa instructions or what? Is there an english version available... :)

Chicken
08-06-2000, 09:03 PM
That isn't too bad actually. I have seen a few scripts for the RaQ (unsupported by Cobalt), and the instructions were not step by step. It also wasn't clear as to what to do with the script (how to use / read the results).

If I knew what the sam-hill I was doing, would I have gotten a RaQ???

On the flip side of that, some people went out of their way to post step by step instructions that a 2 year old could follow, and that is about my speed. I can't thank these people enough for their efforts (as well a few people on this board!).

marksy
08-06-2000, 10:40 PM
If I'm not mistaken, mod_bandwidth restricts the max allowable bandwidth at any one time, which most clients won't like. You can set a client to 10k which will limit overall throughput, but also restrict them during peak times. My guess is you want to restrict monthly througput to something like 5 GBs, mod_bandwidth isn't the answer. It only caps the max bandwith at a time, not monthly throughput...Again, only my understanding..It is what RaQ3's use and we found utterly useless.

------------------
Chris Marks
KBS Web Hosting (http://www.netfronts.com)
http://www.netfronts.com

eva2000
08-07-2000, 12:19 AM
thanks... that was confusing to say the least, but how do other hosts limit bandwidth for their package plans ?

oh btw, i lost my password and the forget password function says can not send to me cause there's 2 emails registered the same ?

i am using IE's auto fill but IE is buggy and i have to use Netscape

------------------
Australian Neon Genesis Evangelion (http://www.eva2000.com)

marksy
08-07-2000, 01:36 AM
I think most generate reports from transfer logs at the end of the day and check that against some specified limit. Not sure of the specifics.

------------------
Chris Marks
KBS Web Hosting (http://www.netfronts.com)
http://www.netfronts.com

scottlaw
08-07-2000, 04:06 AM
Originally posted by eva2000.com:
thanks... that was confusing to say the least, but how do other hosts limit bandwidth for their package plans ?


I can only see 2 ways to limit the bandwidth. You can cap the amount that can go out like mod_bandwidth does or just measure the bandwidth and once they hit the limit you set close the site down.

Scott

eva2000u
08-07-2000, 06:56 AM
i see, i found bandmin.org for reporting bandwidth... is this okay to use ? or is there something better ?

it seems it more needed than ever, my bandwidth report for my server when from 0.8GB/day to 5+GB/day for Aug 4 it could be an error on the report cause my site stats from http-analyse only total around 0.6GB for Aug 4.

had to use a different username as i can not get the forget password to email me my lost password

eva2000u
08-07-2000, 09:14 AM
i also found these and was wondering anyone can shed any light on these

IPflow meter http://freshmeat.net/appindex/1999/05/15/926817829.html

IPaccc http://freshmeat.net/appindex/1999/12/13/945139499.html

Bandwidth monito http://freshmeat.net/appindex/2000/04/11/955436408.html