Hi guys, first time posting here after using these forums for several years with great success. I have been building Drupal sites for a couple years now, and performance has always just been okay for me. The most recent site I am working on seems to be slower to load than most. I am looking for advice on how to make this site load faster. It is not a huge and overly complex site, doesn't seem like it should be this slow.
It is the latest Drupal install, and all up to date modules. There are about 50 modules, if it helps to provide a list of those I can.
On webPagetest the site is taking over 5s: http://www.webpagetest.org/result/130809_MG_YTB/1/details/ And over 8s on pingdom: http://tools.pingdom.com/fpt/#!/eHGJEM/http://temp.modwest.com/eccv.org/
The time to first byte is what is killing me. What info can I give to help better evaluate the problem?
Thanks a lot guys for all that you do on these forums.
Comments
more data please
http://yslow.org/
Need to see where in the request/response chain you are seeing delays...
Jeremy Donson
Database and Systems Engineer
New York City
I have yslow running on
I have yslow running on Firefox. Here is a link to a screenshot on Dropbox. Let me know if there is a better way to relay this information.
https://dl.dropboxusercontent.com/u/1493357/eccv_01.png
Sprites
I'd say that sprites would help a lot. You can visually tell that the images are taking up a lot of the pipes between the browser and the server. Also, what is causing the homepage to take 1.5 seconds to respond on initial page load? Have you turned on any of the devel query timing settings and checked if there are any long-running queries?
admin/config/development/devel
Devel Information
You're right there are definitely several images I can combine into sprites. I will do that.
Here is the devel query information:
https://dl.dropboxusercontent.com/u/1493357/eccv_02.png
There are a few +5ms queries, not sure I know where or what to fix.
web server?
That doesn't add up. 165ms for Drupal and 1.5 seconds for page render in browser. How's the life of Apache doing? Do you have APC enabled?
Cache
As far as the web server is concerned, this is where I am a little weak. I have not really dealt with servers too much, I have always had clients who managed their own servers. It has only been since recently getting deeper into Drupal and PHP I see a need to know what is going on with the server.
I am not sure what "..life of Apache.." means. I know Apache is the server, but I wouldn't know how to check it's life.
I have been looking at installing APC, trying to figure out if it would conflict with Boost, the module I have installed for caching pages.
APC is very simple to install
APC is very simple to install and very much worth it. Generally you can just do:
sudo pecl install apcThen in your PHP.INI file you need to enable it:
extension=apc.soAfter that just restart apache. If that doesn't work, then give us the distribution and release of your operating system. For Linux:
cat /etc/*-releasedoes the trick.
HollyIT - Grab the Netbeans Drupal Development Tool at GitHub.
Yes, but...
Well yes, APC is easy to install, but if you just turn it on and ignore it, there's a good chance you'll impair performance as the APC cache gets fragmented.
APC's default setting of 30M is just barely enough for Drupal, so if you have any meat on your site at all you'll certainly need more, and left untended, your site performance will degrade awfully.
There are a number of settings in APC that need to be configured by someone who knows what they're doing. There's no magic bullet here that obviates the need for knowing how to performance tune a Drupal server.
Misreading and misinterpretation
First, if Drupal time is 165 ms, then this is good response time (generally), and the problem is rendering time (jQuery, ...etc.) In this case, APC and other server side stuff does not matter.
But in fact, the time for Drupal is not 165 ms. That is the time for the queries that devel reports (which excludes queries from Views, render time, ...etc.). The time for Drupal is 1,560 ms per YSlow's time. So Drupal is slow, and it is not just a front end problem.
Yes, the owner of the site needs APC for sure, but that would shave perhaps a few hundred milliseconds. There is another issue (or a few) that is causing this. It could be network calls, it could be slow queries, it could be other things.
Forget sprites, jQuery, ...etc. and focus on backend Drupal.
If you know how to use xhprof or xdebug profiling, that would reveal where the issue is for sure.
Drupal performance tuning, development, customization and consulting: 2bits.com, Inc..
Personal blog: Baheyeldin.com.
I figured it would come to this
Looking for the quick easy solution is never a good idea. I wasn't looking forward to this answer, even though I figured it was coming. Guess it's time to learn how to do this proper.
Would using this XHProf module be a good place to start with the profiling? https://drupal.org/project/XHProf or do I really just need to man up and figure this out with the command line, and maybe finally learn what "drush" is? (I realize not knowing these things is probably sacrilege)
If you want a less technical
If you want a less technical way to do it, set up a copy on a test server and start disabling modules and profile as you do so. I've done this before with success.
Premium Drupal Commercial themes
Nice Menus
I would suggest disabling Nice Menus and seeing if that helps and by how much. You've got 91 menu items in there, so there's a really good chance that is causing problems. There is a patch on this issue to help with it:
https://drupal.org/node/350755
HollyIT - Grab the Netbeans Drupal Development Tool at GitHub.
I will try this as well.
I will try this as well.
there is so many things to
there is so many things to take in account when you face website performance issues, here is some tips
Server side
1. the number of modules you have on your website could produce a very slow website and long time response and here you have to find the really unused modules and disable them, (disable all UI modules i.e views_ui, rules_ui ... etc you don't need them in your production environment )
any custom module/code that execute something at hook_init() and in preprocess layer make it take long time (i.e service request or any kind of request to external website) should be replaced in a way or another.
use APC to cache you php OB code
enable all caching system provided with Drupal by default and use cacheing options in views if you are using it.
use fast_404 module.
if you know how to work with MySQL configuration you should try to configure MySQL wisely if it's needed.
Client side
1. aggregate all CSS/JS files
2. use sprite in you CSS backgrounds.
3. use CDN services if you can, it have a remarkable impact on the website performance if you use it.
4. try to reduce your custom css selector in the CSS and make sure its more general.
I hope this help :)
supplemental suggestions, if
supplemental suggestions,
that could improve more performance.
Drupal博客广州Drupal开发
Drupal大学Drupal大学