6 Tools To Find Out Website Load Speed

by on July 15, 2009 · 28 comments· LAST UPDATED November 5, 2009

in , ,

Research shows that if your web pages take longer than 5 seconds to load, you lose 50% of your viewers and sales. As a UNIX admin often end users and web developers complain about website loading speed and timings. Usually, there is nothing wrong with my servers or server farm. Fancy java script and images / flash makes site pretty slow. These tools are useful to debug performance problems for sys admins, developers and end users. Here are six tools that can analyzes web pages and tells you why they are slow. Use the following tools to:

  • Make your site faster.
  • Debug site problem, especially client side and server side stuff.
  • Better user experience.
  • Improve the web.

#1: Yahoo! YSlow

The Firebug extension for Firefox allows you to debugging, editing, and monitoring of any website's CSS, HTML, DOM, and JavaScript. YSlow works with the firebug extension:

YSlow analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages. YSlow is a Firefox add-on integrated with the Firebug web development tool. YSlow grades web page based on one of three predefined ruleset or a user-defined ruleset. It offers suggestions for improving the page's performance, summarizes the page's components, displays statistics about the page, and provides tools for performance analysis, including Smush.i and JSLint.

Fig.01 Yahoo! Yslow

Fig.01 Yahoo! Yslow Providing Overall Score For Cyberciti.biz (click to enlarge)

If you apply tips provided by YSlow, your corporate web site or personal blog can be load pretty faster as compare to old version.

Fig.02: YSlow Components Level Report (click to enlarge)

Fig.02: YSlow Components Level Report (click to enlarge)

This is useful to find out if Apache or Lighttpd compressing (gzipping) files or not.

Fig.03: YSlow! Graphical Representation of Various Components

Fig.03: YSlow! Graphical Representation of Various Components

#2: Google Page Speed

Page Speed is an open-source Firefox/Firebug Add-on. You can use Page Speed to evaluate the performance of yoir web pages and to get suggestions on how to improve them.

Fig.04: Google Page Speed in Action  (click to enlarge)

Fig.04: Google Page Speed in Action (click to enlarge)

Fig.05: Google Page Speed Suggestions

Fig.05: Google Page Speed Suggestions

#3: Pagetest (IE specific tool)

This tool only works with MS Internet Explorer. From the project web page:

Pagetest is an open source tool for measuring and analyzing web page performance right from your web browser. AOL developed Pagetest internally to automate load time measurement of its many websites, and it has evolved into a powerful tool for web developers and software engineers in testing their web pages and getting instant feedback. We decided to release it to the grander web development community to further help evolve it into an even more useful - and free - web performance tool.

Fig.06: Waterfall Of My Web Page Load Performance Using  (click to enlarge)

Fig.06: Waterfall Of My Web Page Load Performance Using (click to enlarge)

#4: HTTP Server Benchmarking Tool

ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server. It is designed to give you an impression of how your current Apache installation performs. This especially shows you how many requests per second your Apache installation is capable of serving. See how to use ab command.

httperf is a tool to measure web server performance. It speaks the HTTP protocol both in its HTTP/1.0 and HTTP/1.1 flavors and offers a variety of workload generators.  Following command causes httperf to create a connection to host www.cyberciti.biz send and receive the reply, close the connection, and then print some performance statistics.
$ httperf --hog --server www.cyberciti.biz
Sample Outputs:

httperf --hog --client=0/1 --server=www.cyberciti.biz --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=1 --num-calls=1
httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE
Maximum connect burst length: 0
Total: connections 1 requests 1 replies 1 test-duration 0.236 s
Connection rate: 4.2 conn/s (236.0 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 236.0 avg 236.0 max 236.0 median 235.5 stddev 0.0
Connection time [ms]: connect 47.0
Connection length [replies/conn]: 1.000
Request rate: 4.2 req/s (236.0 ms/req)
Request size [B]: 70.0
Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)
Reply time [ms]: response 38.0 transfer 151.0
Reply size [B]: header 242.0 content 26976.0 footer 2.0 (total 27220.0)
Reply status: 1xx=0 2xx=1 3xx=0 4xx=0 5xx=0
CPU time [s]: user 0.01 system 0.22 (user 6.3% system 93.6% total 99.9%)
Net I/O: 112.9 KB/s (0.9*10^6 bps)
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

Following is Like above, except that a total of 100 connections are created and that connections are created at a fixed rate of 10 per second:
# httperf --hog --server www.cyberciti.biz --num-conn 100 --ra 10 --timeout 5
Sample Outputs:

httperf --hog --timeout=5 --client=0/1 --server=www.cyberciti.biz --port=80 --uri=/ --rate=10 --send-buffer=4096 --recv-buffer=16384 --num-conns=100 --num-calls=1
httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE
Maximum connect burst length: 1
Total: connections 100 requests 100 replies 100 test-duration 10.089 s
Connection rate: 9.9 conn/s (100.9 ms/conn, <=4 concurrent connections)
Connection time [ms]: min 186.7 avg 193.6 max 302.3 median 187.5 stddev 20.8
Connection time [ms]: connect 36.4
Connection length [replies/conn]: 1.000
Request rate: 9.9 req/s (100.9 ms/req)
Request size [B]: 70.0
Reply rate [replies/s]: min 9.8 avg 9.9 max 10.0 stddev 0.1 (2 samples)
Reply time [ms]: response 39.5 transfer 117.7
Reply size [B]: header 242.0 content 26976.0 footer 2.0 (total 27220.0)
Reply status: 1xx=0 2xx=100 3xx=0 4xx=0 5xx=0
CPU time [s]: user 0.34 system 9.75 (user 3.4% system 96.6% total 99.9%)
Net I/O: 264.1 KB/s (2.2*10^6 bps)
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0
  • Download httppref utility for UNIX like operating systems.
  • See ab and httppref man page for more details.

#5: Full Page Test

The Full Page Test loads a complete HTML page including all objects (images, CSS, JavaScripts, RSS, Flash and frames/iframes). It mimics the way a page is loaded in a web browser. The load time of all objects is shown visually with time bars.

Fig.07: Pingdom page test in action

Fig.07: Pingdom page test in action

#6: UNIX wget or fetch Utility

wget is used to retrieve the file(s) pointed to by the URL(s) on the command line. It can tell you exact time it spent to download your files:
$ wget http://www.cyberciti.biz/files/test.pdf
$ wget http://www.cyberciti.biz/

Sample Outputs:

--2009-07-15 22:09:05--  http://www.cyberciti.biz/
Resolving www.cyberciti.biz... 74.86.48.99
Connecting to www.cyberciti.biz|74.86.48.99|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `index.html'
    [   <=>                                                                                                               ] 26,976      38.0K/s   in 0.7s
2009-07-15 22:09:07 (38.0 KB/s) - `index.html' saved [26976]

Please note that wget does not care about your javascript, css and 3rd party server. This just gives you raw idea and nothing else.

Update#1: Tools For Apple Safari 4 Browser

Apple offers various tools to test your web site:

The Resources pane graphs the order and speed at which website components load over the network. It’s also the first tool that lets you sort data based on loading parameters such as latency, response time, and duration. You can graph page resources by either size or load time. Clicking a resource in the left column brings up detailed data on the right. For text resources, such as documents and scripts, you see the text source of the file. For image and font resources, you view a graphical preview of the file.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 28 comments… read them below or add one }

1 Solaris July 15, 2009 at 7:44 pm

Good article, don’t forget about Apache’s JMeter for serious load benchmarking.

Reply

2 nixCraft July 15, 2009 at 8:14 pm

@ Solaris

Thanks for mentioning JMeter. A few more tools:
+ Siege
+ http_load
+ Grinder
+ HTTP Test tools

Reply

3 Shoaibi July 16, 2009 at 10:12 am

Great article.

Reply

4 sunliguo July 16, 2009 at 12:00 pm

Good!

Reply

5 sri July 17, 2009 at 6:48 am

I use YSlow, i wll try remaining.
Thanks for sharing

Reply

6 Alok Khode July 17, 2009 at 8:13 am

Good tools. Specially pingdom fulltest tool requires nothing to install.

Reply

7 Rob July 17, 2009 at 5:11 pm

Cool. For the analysis I do for clients I usually use Pingdom. It’s not an add-on, but I can at least refer them to the page for self analysis.

Reply

8 Yash July 18, 2009 at 5:49 am

Very Good Article!

Had been using YSlow. Will try others and see how better I can improve my corporate intranet site performance.

Reply

9 Nimit July 19, 2009 at 8:29 am

In addition to all these FireBug extension for FireFox also provides good stats…

Reply

10 glurt July 19, 2009 at 10:24 am

nice, thanks !

Reply

11 Charanjit Singh July 22, 2009 at 3:11 pm

Nice Article Pal… Really boon for Web Admins.

Thanks & RGD
Charanjit Singh

Reply

12 M.S. Babaei August 1, 2009 at 3:30 am

Great tools!!
Specially wget with ssh session.

Reply

13 angath August 2, 2009 at 7:58 am

Great stuffs vivek, Thanks.

Reply

14 Honey Singh August 2, 2009 at 10:30 am

The best way to optimize the http requests are:
1.Use CSS sprites instead of separate images
2.Use formatted CSS and java-script instead of lengthy file have use-less gaps.
3.Use less no of CSS and JS (as per required)
for example on wordpress their are various useless scripts and css called due to several plugins. You can avoid all this by removing the from header.
4.Avoid use of iframes
5.Avoid flash files on the home / landing pages.

Reply

15 Hospital August 3, 2009 at 8:12 am

Thank you

Reply

16 alkoga August 29, 2009 at 7:13 pm

thank you.thanks Honey Singh.regards.Alkoga

Reply

17 Anup Sadhu September 10, 2009 at 1:26 pm

Useful for web admin & developers, Thanks

Reply

18 yalnark November 3, 2009 at 2:30 pm

nice article…

Reply

19 Vivek Rathore November 5, 2009 at 6:48 am

Very useful article to measure the page performance. I used the Page Speed and found it very useful. But the tool Google Pagetest (IE specific tool) is not IE8 compatible.
We can also keep the images, CSS and javascript in the IIS cache so as to enhance the speed up the page performance.

Reply

20 qdb November 5, 2009 at 4:58 pm

very helpful, thanks!

Reply

21 philst November 6, 2009 at 12:55 am

Useful article, I use webpage test all the time.
We use the website accelerator WAX (by aptimize) to automate our frontend optimization – it not only increased the speed of our website by 58% but fixed a caching issue we had on our catelog pages – we had been doing optimization “by hand” for a long while but man does this save us a lot of time – its not free though.

Reply

22 SAnKALP February 4, 2011 at 2:54 pm

very good post thanks…

Reply

23 mark October 8, 2011 at 10:41 pm

I’m looking for these tools. Thank you.

Reply

24 Evert Meulie October 11, 2011 at 12:09 pm

Instead of simply ‘wget’ you should use ‘wget -p’

This option causes Wget to download all the files that are necessary to properly display a given HTML page. This includes such things as inlined images, sounds, and referenced stylesheets.

Reply

25 Pierre April 10, 2013 at 2:54 pm

There is as well simonbot wich is performing full page test every day and yslow analysis.
The good point is that you can keep the data and graph the evolution of your website performances. Usefull IMHO

Reply

26 Amit Wadhwa April 11, 2013 at 12:47 pm

Great article – helped me reduce the load tim eof my site.

Might I suggest you place this form above the comments. It is a little bit annoying to have to scroll through the comments to be able to say my piece. If I want to read the comments, I will scroll down anyway but if someone doesnt want to read the comments, they might not leave you a comment because of having to scroll through them.

Reply

27 Karthikeyan July 2, 2013 at 2:14 pm

very useful tools.. thanks for sharing :)

Reply

28 jeff angama October 16, 2013 at 9:03 am

Hello, thx for the tips.

You are missing a great one : http watch
Page test doesn’t work anymore.

Regards,

Reply

Leave a Comment

Tagged as: , , , , , , ,

Previous post:

Next post: