Jun 12, 2011

Drupal 7 admin pages slow

So for some time I've been running Drupal 7 for my private webpage. It has been slow as hell on the admin pages. The "frontend" side works fast and without any slowdown. There are others experiencing the same trouble. A lot of others it seems.

For years I've been running Drupal now and it's only since I switched to version 7 that it started to have speed problems. It has a major slowdown on all admin pages. They take sometimes 30+ seconds to load and almost every admin page uses 10+ seconds. The high times cause PHP to throw an error (Maximum execution time of 30 seconds exceeded) that some function was running too long. I constantly got these errors on admin pages. It was barely usable. I had to reload pages multiple times (often 5+ times) to finally get them to show. Each time I had to wait till the timeout came.

Furthermore the update.php page had the same problem. I couldn't update more than 2 modules for some time. Now I updated to version 7.2 and with that updated all modules to the newest versions. I wasn't able to update two of the modules. They run into this timeout even when they where the only modules which needed an update. So I desperately needed a solution for this problem as one was the views module which I need.

After a long time of seaching the net, this is what I found out and did so far:
  • It helps to disable all modules that aren't needed (of course). Especially the special modules for the admin pages like the Overlay module or the Update Manager module. These help minimally to increase page loading speeds. I did disable all non needed modules.
  • I installed the devel module to check where the problem is. This showed me that its on the PHP side and not the database.
  • There are some optimizations that can be done on the database side. I didn't do these as the database seems fast enough.
  • Someone wrote that it may be due to not finished installs of some module that messed up Drupal. This could be the case for me. I had a few "failed" upgrades of modules in the past. Uninstalling the module and reinstalling it is supposed to help. Didn't try this so far and it's hard to find the problematic modules. I'm considering a fresh install of Drupal with a new DB. Just need to have time for it and backup all the current data.
  • Another obvious solution is to increase the PHP timeout. This is what I did as the other solutions are too time consuming or don't feel "right". Edit the .htaccess file located within the drupal root directory and add a "php_value max_execution_time 90" at the end. 90 stands for 90 seconds, use what you think fits. You just need to remember that you did this the next time you update Drupal.