≡ Menu

Turbo charge lighttpd with Linux AIO – Gain more performance

Support for Linux kernel AIO (Asynchronous I/O) has been included in the version 2.6. By enabling Lighttpd AIO you can gain good performance gain. But what is AIO?

Usually your application needs to wait till I/O call is finished. AIO enables even a single application thread to overlap I/O operations with other processing, by providing an interface for submitting one or more I/O requests in one system call without waiting for completion, and a separate interface to reap completed I/O operations associated with a given completion group (see Linux AIO home page for more details).

Lighttpd 1.5.x support AIO. First make sure you have libaio installed:
# yum install libaio-devel

Next grab lighttpd source code and compile with --with-linux-aio option:
# ./configure --with-openssl --with-linux-aio

Install lighttpd
# make; make install

Create configuration file and put following directive in lighttpd.conf file:
server.network-backend = "linux-aio-sendfile"

Save and close the file. Restart lighttpd:
# /etc/init.d/lighttpd restart

Use httpd_load / ab command Performance Benchmarks a Web server.

Please note that I’ve tested above instructions on Redhat Enterprise Linux 4/5 and Cent OS.

Share this on:

{ 3 comments… add one }

  • mumuri May 27, 2008, 12:54 pm

    what are your result (gain) with this feateures ?

  • Fujiko Fujio October 10, 2008, 10:32 pm

    Is it possible to do the same thing on Ubuntu? Currently using lighttpd 1.4.19

  • nixCraft October 10, 2008, 10:47 pm

    Yes, it should work under Ubuntu but you need Lighttpd 1.5.x version.

Leave a Comment

   Tagged with: , , , , , ,