Re: Bandwidth control

2001-08-31 Thread Günter Knauf

 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

2001-08-31 Thread Charles Randall

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

2001-08-31 Thread Ian Holsman

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

2001-08-30 Thread Alex Stewart

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

2001-08-30 Thread Graham Leggett

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