To see where Lighttpd is spending its time in more detail, the use of a profiler is recommended. gcc
comes with a profiling tool called gprof
. We first need to tell gcc
to prepare a Lighttpd version for profiling, then put it under load with http_load
, stop Lighttpd, and run gprof
to get a list of functions sorted by the time spent, which we can then interpret to see what to optimize. Now, let's see each step in more detail.
We can create a gprof
ready Lighttpd by specifying a flag for the C compiler. This is done with the following commands before calling configure
:
$ export CFLAGS=-pg
$ export LDFLAGS=-pg
Otherwise, proceed as in Chapter 1 to create a Lighttpd build. We might also want to install this Lighttpd in a location different from our production build, as the profiling code will slow down our Lighttpd just slightly, and may also fill our file system with profiling data while running. So use the configure prefix
argument to specify a different location, for example...