I support a D5 site that has been averaging around 18 secs load time for the front page (it has lots of external httpd calls, javascript, css files, etc). The architecture consists of a redundant front-end load balancer along with a pair of Squid caching servers, a RHEL5 GFS 4-node cluster, Memcached cluster (1GB per server, 4 servers total). D5 site is running the Memcache API as well.
LoadRunner Setup: 20 Minute Run-Time, 100 Virtual Users (Starts at 2, increases by 2 each 10 seconds)
Just to see what would happen, I enabled the 'Throttle' module and set the non-authenticated users to 25 and auto-throttle probability limiter set to the default of 10%. I did not throttle any of the modules. I re-ran the LoadRunner for another 20 minutes with the Throttle module enabled and the response time for the front page dropped to under 10 seconds.
I read over the Throttle handbook (http://drupal.org/handbook/modules/throttle/), but it really doesn't say what it is doing behind the scenes. I reviewed the throttle.module as well, but haven't exactly seen what is being called under the themes or blocks to make the site respond faster.
Can someone 'explain' exactly what the Throttle module is doing to the site? I have attached the LoadRunner Analysis summaries for a pre-throttle and throttle-enabled setup.
-- Michael
| Attachment | Size |
|---|---|
| Pre-Throttle LoadRunner Analysis Summary | 15.79 KB |
| Throttle-Enabled LoadRunner Analysis Summary | 15.8 KB |

Comments
The throttle module checks
The throttle module checks if a certain threshold of users are on the site and disables certain blocks when that condition is met.
Check the block.module's source, namely this function:
<?php// Check the current throttle status and see if block should be displayed
// based on server load.
if (!($block->throttle && (module_invoke('throttle', 'status') > 0))) {
$array = module_invoke($block->module, 'block', 'view', $block->delta);
?>
Drupal performance tuning, development, customization and consulting: 2bits.com, Inc..
Personal blog: Baheyeldin.com.
Drupal performance tuning, development, customization and consulting: 2bits.com, Inc..
Personal blog: Baheyeldin.com.
Okay, I looked over that
Okay, I looked over that section and if I am reading the code right, it would only disable certain blocks if the throttle module is enabled. I reviewed all of the modules that the site is utilizing, but none have the 'throttle' button selected.
Example output under 'modules'...
Enabled Throttle Name Version Description
X Fivestar 5.x-1.12 A simple five-star voting widget for nodes.
And so forth...
Are certain 'core' modules or themes automatically throttled?
-- M
Yes
And, consequentially, if you're seeing a really big performance boost from throttling blocks, it would follow that there are some real performance bottlenecks there. Maybe check the queries and code that come from the blocks on your homepage, see if there are any stinkers there.
http://www.chapterthree.com | http://www.outlandishjosh.com
https://pantheon.io | http://www.chapterthree.com | https://www.outlandishjosh.com