[drupal-support] how does the throttle module works?

Jeremy Andrews lists at kerneltrap.org
Tue Apr 12 13:17:14 UTC 2005


> I can still use my modified module by replacing it when the new
> release will be out or there are other dependences?

Possibly.  It depends on how you've implemented it, and how many
core modules you're willing to patch.  Any core modules that use the
throttle module would have to be updated to recognize multiple
throttle levels

> Right now I've set the 'default_nodes_main' to adjust dynamically
> with the load so that at level 0 the mainpage will show 25 nodes,
> and progressing at -5 for each level till it reaches just 5 nodes
> at level 5. I believe this modification I did could improve
> dramatically the performance since I'm tuning dynamically how the
> main page is crowded.

Yes, things like this benefit from having multiple throttle levels. 
But it was decided that the configuration and concepts were too
difficult, thus it was simplified:
http://lists.drupal.org/archives/drupal-devel/2004-08/msg00486.html

Here's a followup thread showing what other modules are affected:
http://lists.drupal.org/archives/drupal-devel/2004-11/msg00375.html

And here's a thread discussing another simplification of the module
(I believe in 4.6):
http://lists.drupal.org/archives/drupal-devel/2004-10/msg00414.html

> This is actually impossibe. Or there's something seriously wrong
> with drupal calculation. For my experiments I set the detection
> accuracy to 100% (so a check every hit) and the auto-throttle at
> 1. With these settings Drupal is supposed to go in emergency mode
> after five *refresh* of the page.
> 
> Even with my crappy connection I'm able to refresh an example page
> every 4-5 seconds and I kept doing that CONTINUOUSLY. My
> installation of Drupal has the cache disabled.
> 
> Every 15-20 refreshes of the page I kept seeing the throttle level
> *lowers* from 5 to 4. How is this possible if I was there
> refreshing continuously and if Drupal parses all my requests?
> 
> Something happens, my refreshes are counted till a point, then
> they go ignored.

This is by design, well, the old design.  Essentially, at throttle
level 5 the throttle tuned itself to no longer perform database
queries.  See here:
http://lists.drupal.org/archives/drupal-devel/2003-12/msg00218.html

In any case, this was determined to be too complex, and is no longer
true in 4.6+.

> Also: it could be useful to tell the throttle module to enable the
> caching in the case the site reaches the fifth level? It would be
> better than having the cache always disabled?

Such applications are certainly possible, and have been discussed.  
However this is not currently done.
 
> > A link from a popular site can certainly cause a cpu spike.
> > Enabling the cache can help quite a bit, though every time a
> > user leaves a comment the cache is flushed so if you have active
> > discussions the benefit of the cache can be minimal.
> 
> No, in this specific case it was just about peoples hitting a
> specific node all at once.

Once a page is cached, performance for anonymous guests should be
significantly better.  If you're making lots of modifications to the
core code, this may no longer be true.

> > Any modules you don't actually use should be disabled.  Any
> > modules you don't absolutely need should be set to auto-throttle
> > so they can be disabled when the site becomes busy.
> 
> But if I have the forum module enabled but noone is browsing the
> forum nor there are block related to it on the sitebar, it matters
> if it's active or not?

It should not cause undue overhead in this case.  I just used it as
an example...

-Jeremy




More information about the drupal-support mailing list