Re: Bandwidth control
Alex Stewart wrote: I've already got a basic model for limit calculations working, and have a good idea how to go about most of the rest of it, I think, but suggestions are welcome.. An output filter in Apache v2.0 would be ideal for this. However I would question why you would want to do bandwidth limiting in Apache when they are so many options for doing this on the network itself. that's only true for Unix, but for other platforms as NetWare or Win32 we have nothing (as far as I know). One thing that would be quite cool is bandwidth control on a per user basis. and per directory too... Guenter.
RE: Bandwidth control
As you point out, that level of granularity isn't available with general purpose traffic shaping tools. You may want to look at the Zeus server to understand the features that were product-worthy as one example. It appears that they've only implemented this at the virtual server level. As you're probably aware, thttpd also provides flexible bandwidth throttling, http://www.acme.com/software/thttpd/thttpd_man.html#THROTTLING Charles -Original Message- From: Alex Stewart [mailto:[EMAIL PROTECTED]] Sent: Thursday, August 30, 2001 5:53 PM To: [EMAIL PROTECTED] Subject: Re: Bandwidth control Charles Randall wrote: Often times, this can be done easier at the OS level. What OS are you using? Linux, and I am aware of various kernel-level controls for traffic shaping, etc, however if you can tell me how to enforce different bandwidth limits for different name-based vhosts, different directories, etc, then I'm all ears, but I suspect I can also give you pretty good reasons why even if such decisions could somehow be done at the OS level, they really shouldn't be. -alex
RE: Bandwidth control
On Fri, 2001-08-31 at 13:40, Jason Burns/DHD wrote: Once again, Danni's Hard Drive has implemented these features in apache 1.3.x. I sent in a patch to 1.3.20 but nobody has appeared to be interested in it. I feel like this is the SGI 10x patch deal all over again. Would anyone care to look at the patch if I sent it in again? hi Jason. the apache group at the moment isn't really interested in adding new features to the 1.3.X server. there concentrating on getting the 2.0 release out. I don't have commit access to the apache tree, but I assure you they do look at the patches and sometimes they might even implement them ;-) (do you have a bandwith module for 2.0.X ???) Jason Charles Randall crandall@matchTo: '[EMAIL PROTECTED]' [EMAIL PROTECTED] logic.com cc: Subject: RE: Bandwidth control 08/31/01 10:26 AM Please respond to dev As you point out, that level of granularity isn't available with general purpose traffic shaping tools. You may want to look at the Zeus server to understand the features that were product-worthy as one example. It appears that they've only implemented this at the virtual server level. As you're probably aware, thttpd also provides flexible bandwidth throttling, http://www.acme.com/software/thttpd/thttpd_man.html#THROTTLING Charles -Original Message- From: Alex Stewart [mailto:[EMAIL PROTECTED]] Sent: Thursday, August 30, 2001 5:53 PM To: [EMAIL PROTECTED] Subject: Re: Bandwidth control Charles Randall wrote: Often times, this can be done easier at the OS level. What OS are you using? Linux, and I am aware of various kernel-level controls for traffic shaping, etc, however if you can tell me how to enforce different bandwidth limits for different name-based vhosts, different directories, etc, then I'm all ears, but I suspect I can also give you pretty good reasons why even if such decisions could somehow be done at the OS level, they really shouldn't be. -alex -- Ian Holsman [EMAIL PROTECTED] Performance Measurement Analysis CNET Networks - (415) 364-8608
Bandwidth control
Greetings all, I have recently been looking around for a means to control bandwidth utilization of my Apache server. I have in the process found three or four modules which attempt to do this in various ways, all of which seem to be less than ideal to me in one or more areas, and of course lots of general responses by various people suggesting using traffic shaping in the linux kernel, etc, which is also less-than-ideal for my applications.. I am therefore looking at writing my own implementation of general-purpose bandwidth control for Apache. I have noticed that the framework of the 1.3 server is apparently not well suited to generic output filters, which would mean that to do this in a comprehensive way there would probably require some hacks to the core of the server and wouldn't be possible just as a plain module, but I have also noticed that the 2.0 line apparently has much better support for exactly this sort of module, so I'm looking at starting with a module for 2.0 and then possibly backporting to 1.3.. For general information, I'm looking at making something with the following features: * Real-time rate-limiting of output (not just sticking delays between requests) * Hard (instantaneous rate) or soft (average rate over request) limiting. * Ability to control total bandwidth used by the whole server, individual vhosts, locations, or directories. * Support for limits based on source IP/domain, user, time of day, day of week, etc. * Multiple limits with varying criteria, all simultaneously enforced. * Minimum bandwidth setting which, when hit, maximum limits will be stretched to accomodate or requests will be turned away (configurable). I've already got a basic model for limit calculations working, and have a good idea how to go about most of the rest of it, I think, but suggestions are welcome.. Before I get deeply into this, however, I do have a couple of questions which I hope some folks here could help out with: 1. Are my analyses of the architecture issues with 1.3/2.0 basically correct, or am I missing something obvious? (I'm relatively new to all this code so I may be overlooking something) 2. Is there in general some reason why bandwidth control is not already built into Apache httpd (philosophical/technical/political issues), or is it just that nobody has gotten around to doing it? If the latter, would people be adverse to possibly including this stuff into the main tree down the line? 3. Are other people already working on this who I'm not aware of and would be duplicating effort with? 4. I've looked around the various apache web sites, source tarballs, etc, and found a bit of documentation, but noticed that there isn't a lot of developer docs for the 2.0 architecture lying around yet.. This is, understandable as I do realize it's still seriously under development, but I just wanted to throw out a brief query to see if anybody has any pointers to less-obvious sources of information (notes, scribbles, partially-finished whatevers) that might be helpful for a prospective 2.0 module developer.. Alternately, any big gotchas I should watch out for or general advice is welcome, too. 5. If anybody else out there is interested in this sort of thing and has specific features or things they'd like me to work into what I'm doing, I'm open to suggestions. Anyway, I basically wanted to pop my head up, say hi, let people know what I was contemplating, and get any input people out there might have before proceeding, so if anybody's got any thoughts on this, please let me know.. -alex
Re: Bandwidth control
Alex Stewart wrote: I've already got a basic model for limit calculations working, and have a good idea how to go about most of the rest of it, I think, but suggestions are welcome.. An output filter in Apache v2.0 would be ideal for this. However I would question why you would want to do bandwidth limiting in Apache when they are so many options for doing this on the network itself. One thing that would be quite cool is bandwidth control on a per user basis. Regards, Graham -- - [EMAIL PROTECTED]There's a moon over Bourbon Street tonight... S/MIME Cryptographic Signature