There are many threads pointing out sluggishness of Drupal 7, especially on shared hosting. All advice usually points to using some external tools (caches/accelerators), but I'd like to look for a solution within Drupal.
For most part, my new Drupal 7 website's performance is not much different than D6 websites I host at the same place. I'd say it's even a bit quicker.
However, sometimes D7 performance is completely unacceptable. For some time I blamed Panels-based front page with Views Accordion, but it can happen at any other page. Views Accordion only made me pay attention to it: each time a page is loaded after the cache is expired or cleared (or so I guess), page loading takes up to 20 seconds (measured by Firebug). This apparently breaks Accordion javascript - all elements are visible and suddenly when the page is loaded.
Query log shows some longer queries (cache, cache_views, cache_token for example), but altogether the queries do not exceed 5000ms in total (obviously less than 20 seconds).
Before I spam issue queues (I don't want to do that), I'm looking for hints, where to look for the source of the problem:
- Is it something with Drupal core cache handling?
- Is it some contributed modules and their cache handling? (disabling views helps a tiny bit)
- Is it my shared hosting? (my local apache is, again, only marginally better)
- Is it https I use for the website?
Any ideas?
Comments
Not so slow after all...
It turned out it was poormanscron - each time it fired, it stalled the website for ~20 seconds breaking javascript events and making it so sluggish. Disabling it (and configuring a real cron job) helped. Meanwhile, I managed to bring the website to grade "A" on YSlow, initially configure Boost and make it faster than any other Drupal website I have... Lifelong learning it is.