About |

Сравнение производительности Nginx и Lighttpd

Сделали ради интереса небольшой тест производительности двух легких и быстрых вебсерверов (nginx и lighttpd).

Результаты

Результаты по скорости примерно одинаковы. На конфиге по умолчанию лайти немного проигрывал nginx’у и на больших и на маленьких файлах. После отключения лишних модулей и добавления пары опций (см. конфиг вверху страницы) лайти на небольших файлах начал выигрывать.

Пример работы программы ab -c 10 -n 100000 http://127.0.0.1/test_ind.html -

nginx маленький html файл выдал 28488.55 запросов в секунду.

А лайти, — lighttpd маленький html файл выдал 29411.67 запросов в секунду.

После проведения серии тестов (каждый тест мы запускали 3 раза и брали среднее арифметическое значение), были получены следующие результаты:

Как видно из таблицы nginx немного выигрывает на больших файлах а лайти на маленьких. ИМХО, разница в скорости совершенно несущественна. Поэтому выбор веб-сервера для статики (или проксирования) следует делать из других соображений. Мы используем оба веб-сервера и особых нареканий нет ни к тому ни к другому. К плюсам nginx стоит отнести более активную разработку и немного меньшую нагрузку на процессор при проведении тестов.

Конфигурация:

Конфиг lighttpd:

server.modules = (
)


server.document-root        = "/work/htdocs/"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port = 81
#server.bind                = "localhost"

index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )

server.event-handler = "linux-sysepoll"
server.network-backend = "linux-sendfile"

Конфиг nginx:

user www-data;
worker_processes  2;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    multi_accept on;
    use epoll;
}

http {
    include       /etc/nginx/mime.types;

    access_log	/var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  0;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;

}

Компьютер использованный в тестировании — AMD Phenom(tm) II X2 550 Processor с 4 Gb памяти.

Add post to: Delicious Reddit Slashdot Digg Technorati Google
(already: 3) Comment post

Comments

28.02.2011 21:34 webii

Оба сервера не вели логов.

У lighttpd отключен mod_access у nginx вот такой конфиг для директивы server (отключены логи)

- location / { root /work/htdocs; index index.html index.htm; autoindex on; access_log off; }

Но что интересно прирост после отключения логов не ощутим (данных нет, но разница была в рамках погрешности).

12.04.2012 21:37 Leslie Wyatt

Nice weblog here! Additionally your site rather a lot up very fast! What host are you the usage of? Can I get your affiliate link on your host? I desire my website loaded up as quickly as yours lol bcbsnc dental

Comment form for «Сравнение производительности Nginx и Lighttpd»

Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image

Comment post