Allow me to add/edit:
Checklist for clients reporting performance problem with their sites:
1. Is it down for just me. (works for everyone else?)
Go to http://downforeveryoneorjustme.com/
2. Can you reach common sites and how is their response?
* www.google.com
* www.cnnsi.com
* yadda
* yadda
This will allow us to see if the perceived slowness is because of a general
network segment slowness
which cannot be attributed to server-side slowness, so you can easily blame
it on someone else because its beyond our control.
3. For diagnostics will need output of a ping or traceroute for windows,
perhaps MAC:
* Windows: Start --> Run --> ping yourwebsite.com
* Windows: Start --> run --> tracert yourwebsite.com
>>Again, the client needs a simple way to capture the output and get a
>>copy to me or whomever to troubleshoot.
How about redirecting the output:
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Administrator>ping www.contented.com > log_file.txt
C:\Users\Administrator>type log_file.txt
Pinging contented.com [66.98.252.68] with 32 bytes of data:
Reply from 66.98.252.68: bytes=32 time=297ms TTL=48
Reply from 66.98.252.68: bytes=32 time=304ms TTL=48
Reply from 66.98.252.68: bytes=32 time=303ms TTL=48
Reply from 66.98.252.68: bytes=32 time=301ms TTL=48
Ping statistics for 66.98.252.68:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 297ms, Maximum = 304ms, Average = 301ms
C:\Users\Administrator>
Similarly get a redirect output of tracert.
Compare the tracert output (network speed factors in millisecs) with tracert
obtained from another location.
Search "online traceroute" and you get plenty of other locations from where
you can get tracert output.
One of them is
http://ping.eu/traceroute/
For example, my tracert to www.contented.com tells me it takes 299 ms to
reach this server in NZ, but from the ping.eu server it only takes only 134
ms. My network is very slow here because enough infrastructural investments
have not been made to bring Internet speed up to par with world standards.
Get tracert from four different locations
http://www.just-traceroute.com/
and compare the speed in ms.
If server-side is the culprit for slowness then may be it is time to move to
a VPS or dedicated server.
Then you will try installing some
in-memory database (upto the memory limit allowed by your VPS)
so the database queries made by your web app run faster.
Redis/ CouchDB are all this category of enhancements you can try.
Even faster web sites - book:
http://oreilly.com/catalog/9780596522315
If you got time watch this 36:46 video
Yahoo - Stoyan Stefanov - "The Psychology of Performance" - insights into
how humans perceive the duration of various things and what it means for web
applications.
Mohan
http://www.mohanarun.com
Twitter: @437341