Thanks, Nevin. Indeed, we’re seeing some CPU/Apache/PHP spikes, though that’s gotten better using eaccelerator. The biggest hit we’re seeing is to our MySQL server, which serves many other sites just fine (including some on Drupal as well as other CMS), but as soon as we added EE sites to it, usage spiked.
And I think it’s our misinterpretation/misunderstanding of EE’s caching that’s lead us astray. As we learn more about it, we find that it’s not at all what we interpreted it to be from our initial read of the documentation.
Honestly, an in-depth explanation of the logic behind the caching would be infinitely helpful if anyone at EE has any such document. For example, we recently came to understand that having something like a global “headlines list” at the bottom of each article isn’t just cached once, but is cached individually with each article. With a site that publishes 20+ articles per day (and has thousands of articles worth of history that are regularly indexed by search spiders), combined with the 1000-item cache limit (and the fact that the entire cache is erased when a new entry is published!), makes EE’s caching not really an efficiency point for us.
If I’m (still) making any false assumptions or interpretations here, please correct me, but it seems like this is all true, as we’ve come to find out.
Not sure what the magic answer is there. Yes, I’m sure we could continue tweak our template logic for small/incremental gains, but the fact remains that we don’t want to give up on something as simple (and valuable) as a global headlines list on each article page. It just seems to me we shouldn’t have to “pay” (in CPU and DB cycles and valuable reader/browser wait times) to generate it for every single page when the data is exactly the same. In fact, it need only be generated each time an article is added/edited.