6 Tools To Find Out Website Load Speed

by Vivek Gite · 21 comments

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.

Featured Articles:

Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 21 comments… read them below or add one }

1 Solaris 07.15.09 at 7:44 pm

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

2 Vivek Gite 07.15.09 at 8:14 pm

@ Solaris

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

3 Shoaibi 07.16.09 at 10:12 am

Great article.

4 sunliguo 07.16.09 at 12:00 pm

Good!

5 sri 07.17.09 at 6:48 am

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

6 Alok Khode 07.17.09 at 8:13 am

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

7 Rob 07.17.09 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.

8 Yash 07.18.09 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.

9 Nimit 07.19.09 at 8:29 am

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

10 glurt 07.19.09 at 10:24 am

nice, thanks !

11 Charanjit Singh 07.22.09 at 3:11 pm

Nice Article Pal… Really boon for Web Admins.

Thanks & RGD
Charanjit Singh

12 M.S. Babaei 08.01.09 at 3:30 am

Great tools!!
Specially wget with ssh session.

13 angath 08.02.09 at 7:58 am

Great stuffs vivek, Thanks.

14 Honey Singh 08.02.09 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.

15 Hospital 08.03.09 at 8:12 am

Thank you

16 alkoga 08.29.09 at 7:13 pm

thank you.thanks Honey Singh.regards.Alkoga

17 Anup Sadhu 09.10.09 at 1:26 pm

Useful for web admin & developers, Thanks

18 yalnark 11.03.09 at 2:30 pm

nice article…

19 Vivek Rathore 11.05.09 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.

20 qdb 11.05.09 at 4:58 pm

very helpful, thanks!

21 philst 11.06.09 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.

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Previous post:

Next post: