в данный момент занимамся проектированием одного проекта и при выборе
вебсервера остановились на nginx в силу убежденности в его быстроте :)
Поставили nginx 0.5.17-0 (на rhel4) и стали тестировать насколько он
быстр и способен адекватно справляться с большим потоком трафика.
Поскольку проект написан на php прикрутили его как fastcgi и запустили
через spawn-fcgi. Была написана страничка имитирующая не очень долгую выдачу
<?
print "start<hr>";
sleep(4);
print "end";
?>
и с нескольких серверов натравили
while /bin/true ;do ab -n 8000 -c 150
http://some.domain.com:80/test.php;doneрезультатом стало возрастаующее количество запросов которые попадали в
режим write? :
Active connections: 4210
server accepts handled requests
10870 10870 11179
Reading: 8 Writing: 3862 Waiting: 340
а через минуту:
The page you are looking for is temporarily unavailable.
Please try again later.
и куча висщих полуоткрытх конектов к php:
2007/04/15 04:48:06 [error] 14497#0: *55684 upstream timed out (110:
Connection timed out) while connecting to upstream, client:
xxx.xxx.xxx.xxx, server: colour-search.com, URL: "/test.php", upstream:
"fastcgi://127.0.0.1:8888", host: "*************"
Чесно сказать такая ситуация сильно огорчает, с одной стороны nginx
чесно продолжает принимать входящие запросы пользователей и рубанет их
только по таймаутам, а с другой стороны работать с php становится
невозможно потому как даже такой простой код вызывает стресс.. :(
Конифиги у меня стандартные примеров и в инете полно, разве что увеличен
worker_rlimit_nofile до 10240