Chapter 10

In this thesis we tested several caching techniques concentrating on different aspects of the generation and distribution of dynamically generated pages belonging to a web application.

The results show that a combination of the demonstrated techniques leads to a useful result. All in all speed gains of up to 2,240% (index.php without caching vs. with Smarty Caching, see Table 10.1 and Figure 10.1, page §) are possible if the application is tuned carefully. This applies to pages that have already been written with some care for speed, so the original page already rendered in 0.5 seconds, but now does the same in less than 0.1s.

While the external caching methods (Squid, APC, and MySQL query cache) do not need very much effort by the programmer, Smarty Caching involves an application design with this option in mind or requires a redesign.

Table 10.1: Overall Benchmarking results (Requests/s)
File (.php)No TuningSquid APC MySQLSmarty

skeleton 84.69 3868.60409.11404.08
pres-skel 5.70 2523.409.01 56.31 158.88
index 2.64 2.64 3.25 18.80 61.80

Figure 10.1: Overall Benchmarking results

10.1 Further Work

The work done for this thesis was carried out only on a single desktop PC. Its results already show what potential caching has. It is not very favourable (but very common) to have the main three programs (proxy, web, and database server) reside on the same machine.

Further speed up can be established by moving each service to a single machine. The proxy server provides (as already mentioned) means for load balancing. The web server can therefore be designed redundantly. The database server can be split into several servers that can be clustered – or split up into master and slave databases at least with the slaves doing search operations.

A network of computers with the needed software requires quite a budget already. Opposed to that, everything used in the work on this thesis is software based and built on freely available open source software.