After a long night we finally have everything in place for a threaded stat() calls. Not only that, we also have a new network backend for all those platforms which have problems with the posix-aio on. You need to have glib2-2.6.0 or higher installed.
The new options are:
server.max-stat-threads = 4
server.max-write-threads = 8
server.network-backend = “gthread-aio”
Depending on the backend, your OS and the number of disks you might want to raise the two values, but keep in mind that you will get problems if you raise them too much. Performance will decrease again at a given point.
The performance of the different backends is: linux-aio-sendfile, posix-aio, gthread-aio, …
On the way linux-aio-sendfile and posix-aio should behave better under high concurrent load now. They even got some stats:
server.io.linux-aio.async-read: 1261 server.io.linux-aio.sync-read: 551
Time for benchmarks, check my earlier article about lighty-1-5-0-and-linux-aio and try to generate the same set of testfiles and take http_load to generate random load. It is important that you use more files then you can cache in memory.