We've recently discovered a new method to
analyse and compare
the performance of applications and web services.
This tool enables you to assess and compare server load
and application performance at a glance.
Let's start by finding out more...
The performance of your server does not just reflect the
speed of your hardware,
it also depends on a range of other factors including
the software and configurations in use.
The Performance Review tool enables you to easily
benchmark the performance of your
web site or server. You simply point it at a test
URL, and after the benchmark has completed, you
will see a comprehensive comparison of your
configuration.
You can view this comparison using the Graphical
Tool. Alternatively, you can click on one of the
results tables to show further information in the
form of
a table of results. For example, you can easily see
the performance of each web page in your site, or
which web pages are slowest, by clicking on the Table
View button.
The following screen shots show
the benchmark results.
These performance results are generated by a number of software
profiles (which are pre-compiled "scripts" or
"calls" to the server. These "profiles" are all
loaded by Apache, and are automatically generated
whenever Apache is started. As you can see, the number of
calls that are made to the server is very high for this test.
A further discussion of these profiles can be found at the
http://www.alchemylab.org/performance/ page.
You can see a list of the calls that are made, and click on any
of these to drill down to more detail.
Figure 1: Using the Performance Review Tool
In addition, you can also view the performance results
of any web pages that you have defined. For this test, we
created a web page for this purpose.
Figure 2: Viewing a Web Page
When you select a web page, a link is provided to launch
the Performance Review Tool. This can also be done via
a direct web link.
As you can see from this screen shot, we have created a test
web page that loops the "Hello World" web application four
times. If you look at the time taken to render this application
(see top right), you can see that it is fast.
Figure 3: The 'Hello World' Application
The next figure shows the benchmark results for this web
page. As you can see, the result table contains the server time
taken for each request, along with a breakdown of where this
time is taken in the web server. It also contains the web page
request time, and a breakdown of this time. The web page request
time includes the time required to download each of the three
objects associated with the web page.
Figure 4: Viewing the Web Page
The Topology
0.09 s elapsed server time: 1
0.00 s elapsed web page request time: 0.00
0.00 s total web page request time: 0.00
0.09 s spent downloading:
- text/html: 0.09
- index.html: 0.09
- application/xhtml+xml: 0.00
0.00 s spent parsing request
0.00 s spent executing query
0.00 s total elapsed time
This is a report generated by the Performance Review Tool.
We have not defined any web pages or requests for this benchmark
(hence the zero time taken for the web page request and server time).
The first number under the server time heading is the overall server time
taken for the benchmark. This number is quite high because many entries are
added to this table for every web server instance. Each web server has a
different number of web server processes, and these web server processes have
different startup times, as do the underlying OS functions.
The next number under the server time is the time for the Web server to
parse the request. This time is a much lower than the overall server time
and reflects the speed at which the web server accepts and processes
requests.
The next number is the time taken by the Web server to execute the query.
This number is a little lower than the parse time, and this is because some
calls into the web server also perform other actions. This should not be
taken into account for benchmarking the request time.
The next number is the total elapsed time. This is the amount of time taken
from the point of first reading the request until the first request response
is sent back. This time reflects the maximum response time and includes the
time taken to perform any number of other actions.
The last number is the sum of all these entries. This is the amount of time
taken to perform all of the actions associated with the particular benchmark.
This is the amount of time taken to perform both the actual requests
and to respond to each request. This should reflect the performance of the
web server.
This value is typically very high because a lot of actions occur for each
requests, in addition to responding to the request.
This is a report generated by the Performance Review Tool.
We have defined a range of web pages to be displayed.
The server time shown is only the server time spent on
processing each request.
This is a report generated by the Performance Review Tool.
The number of requests run through the web server.
Figure 6: Viewing Multiple Web Pages
This shows that the web server responds to a request and processes
that request in the very least the time it took to create the request.
This is a report generated by the Performance Review Tool.
We have defined a web application to be displayed.
The server time shown is only the server time spent on
processing each request.
This is a report generated by the Performance Review Tool.
This shows the request times for each of the objects that make up
a web page.
As you can see in the results, the download time is the fastest, followed
by the parsing of the request. The response time is the slowest time for
this test. This will be your application's time.
Figure 9: Viewing Web Page Data
To get further information on a web page, you can use the "View Page"
button. This will display a page in the browser window,
which will allow you to view the objects of the page.
You can find all of these objects by clicking on the View "Details"
link. By selecting one of these objects, you can click on the "View"
button, to take you to a page which will provide additional information
about the request for the selected page.
This page provides information on the request for the
web page, such as the HTTP status code, as well as a breakdown
of where the time has been spent in the web server. This also
includes information on the type of action performed, such as
a HTML document, HTML entity, or a Java object.
For example, the HTML document that a page may have contains a
definition of a form. When a page uses a form, a JavaScript application
can be submitted to the server. This is the case with our "Hello World"
application.
Figure 10: Displaying Web Page Details
This is a report generated by the Performance Review Tool.
This shows the server time taken to process each request.
Figure 11: Viewing Individual Web Page Requests
This shows the time taken for each of the functions in the page.
For example, the JavaScript function in this web page takes 0.00 seconds
to execute.
The time spent parsing the request is typically very low.
For example,