Firebug: Waiting

tomtom901

Verified User
Joined
Feb 14, 2010
Messages
291
Location
Meerlo, The Netherlands
Hi all,

On one of our clients servers a website is beginning to get a bit slow. When looking at it with Firefox's plugin Firebug, it says that it is basicly waiting 3-4 seconds before beginning to load all the website components. I think this is the bottleneck. See attachment.

Pinging to the server goes rapidly fast and the load is 0.xx, but when loading the website it takes a bit of time before it can start loading the pages.

Hopefully some of you can point me in a right direction, I think I'm overlooking something, maybe an Apache setting. Maybe keepalive off or? What could be the cause of the fact that we have to wait 3sec to get a connection from the server.

I'm running mod_ruid, Suhosin, and APC if that matters.
 

Attachments

  • firebug.png
    firebug.png
    41.3 KB · Views: 315
I couldn't get the attachments to view :(

Perhaps you could upload them to a site like flickr.

Better still, describe your firebug observance with words.

What type of website is it? Joomla? or some custom developed? Is it running PHP? give us information like this ..
 
I couldn't get the attachments to view :(

Perhaps you could upload them to a site like flickr.

Better still, describe your firebug observance with words.

What type of website is it? Joomla? or some custom developed? Is it running PHP? give us information like this ..

Cant you click on them. Firebug says it is waiting 3 seconds with GET domain.tld. It is Magento with some tweaks, but once on the site everything is fast. It is waiting around 3 secs from reply from the server.
 
GET www. looks a little weird to me, maybe thats timing out. It should be GET www.domain.com, unless you photoshopped it out in the picture?
Maybe a .htaccess file is misconfigured?
 
Last edited:
The .htaccess:
Code:
############################################
## uncomment these lines for CGI mode
## make sure to specify the correct cgi php binary file name
## it might be /cgi-bin/php-cgi

#    Action php5-cgi /cgi-bin/php5-cgi
#    AddHandler php5-cgi .php

############################################
## GoDaddy specific options

#   Options -MultiViews

## you might also need to add this line to php.ini
##     cgi.fix_pathinfo = 1
## if it still doesn't work, rename php.ini to php5.ini

############################################
## this line is specific for 1and1 hosting

    #AddType x-mapp-php5 .php
    #AddHandler x-mapp-php5 .php

############################################
## default index file

    DirectoryIndex index.php

<IfModule mod_php5.c>

############################################
## adjust memory limit

#    php_value memory_limit 64M
    php_value memory_limit 128M
    php_value max_execution_time 18000

############################################
## disable magic quotes for php request vars

    php_flag magic_quotes_gpc off

############################################
## disable automatic session start
## before autoload was initialized

    php_flag session.auto_start off

############################################
## enable resulting html compression

    #php_flag zlib.output_compression on

###########################################
# disable user agent verification to not break multiple image upload

    php_flag suhosin.session.cryptua off

###########################################
# turn off compatibility with PHP4 when dealing with objects

    php_flag zend.ze1_compatibility_mode Off

</IfModule>

<IfModule mod_security.c>
###########################################

# disable POST processing to not break multiple image upload

    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

<IfModule mod_deflate.c>

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

    # Insert filter on all content
    ###SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

    # Netscape 4.x has some problems...
    #BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    #BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    #Header append Vary User-Agent env=!dont-vary

</IfModule>

<IfModule mod_ssl.c>

############################################
## make HTTPS env vars available for CGI mode
    SSLOptions StdEnvVars

</IfModule>

<IfModule mod_rewrite.c>

############################################
## enable rewrites

    Options +FollowSymLinks
    RewriteEngine on

############################################
## you can put here your magento root folder
## path relative to web root

    #RewriteBase /magento/

############################################
## workaround for HTTP authorization
## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

############################################
## always send 404 on missing files in these folders

    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

############################################
## never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

## rewrite everything else to index.php

    RewriteRule .* index.php [L]

</IfModule>


############################################
## Prevent character encoding issues from server overrides
## If you still have problems, use the second line instead

    AddDefaultCharset Off
    #AddDefaultCharset UTF-8

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresDefault "access plus 1 year"

</IfModule>

############################################
## By default allow all access

    Order allow,deny
    Allow from all

############################################
## If running in cluster environment, uncomment this
## http://developer.yahoo.com/performance/rules.html#etags

    #FileETag none
 
Ok, I see the www. .nl in the photo now, so you did blur it out, I'm going blind Ha!

I take it whatever is on that domain needs that htaccess? I was going to suggest renaming the htaccess file, then try without, but if it needs it to work, it'll may have weird affects.
 
Ok, I see the www. .nl in the photo now, so you did blur it out, I'm going blind Ha!

I take it whatever is on that domain needs that htaccess? I was going to suggest renaming the htaccess file, then try without, but if it needs it to work, it'll may have weird affects.

I did blur it out indeed, any idea why we need to wait 3 seconds for reply from the server?
 
Since all subsequent requests are fast, it means one of two things:

1) The bottle neck is at the initial lookup time of the domain. All repeated lookups are cached, hence much quicker. Check your website with www.intodns.com to make sure everything is working correctly. One bad nameserver can really slow things down while the browser waits for the dns timeout.

2) Or the subsequent requests are being done via the persistent apache connection, in which case I'm not sure.

John
 
I can only see Recursive Queries as a red warning.

When I visited the first time, it was slow to respond, like maybe 2 seconds.
 
This is probably useless, what happens if you view the site in lynx (or the like) from the actual box... Does it delay or it instant?
 
Then it has to be that box.... Its a bit confusing its only one domain(?), unless the htaccess is something to do with it, maybe its straining mod_rewrite/apache? I'm clutching at straws here.
 
Then it has to be that box.... Its a bit confusing its only one domain(?), unless the htaccess is something to do with it, maybe its straining mod_rewrite/apache? I'm clutching at straws here.

I am no mod_rewrite expert, so I don't know about that. It's Magento though, and there are a few more domains on the box.
 
In Magento it self there is also an option for 'cache' this seems to work very good. Did you enabled that already?

Otherwise you could tweak some things with the 'Timeout', 'KeepAlive', 'MaxKeepAliveRequests', etc..

We are using the follow things;
/etc/httpd/conf/extra/httpd-default.conf;
Timeout 20
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 1
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
ServerSignature Off
HostnameLookups Off

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</IfModule>
 
Back
Top