ac@eserv.ru
Блог
Фото
Общие папки
Проекты и группы
Контакты
Визитка
План
Программы
Настройки
ТемаОтДатаРазм
SOPA & PIPAsupport18.01.2012 17:191 Кб
Сам себе устроил DDoSsupport24.12.2011 00:181 Кб
Google использует IPv6 и на основных службахsupport01.12.2011 05:291 Кб
Aboutsupport30.11.2011 05:150 Кб
ТНК приравнены к государствамsupport30.11.2011 04:322 Кб
Яндекс уходитac03.10.2011 21:091 Кб
Eserv на Windows 8ac16.09.2011 16:481 Кб
Облачноеsupport13.07.2011 20:331 Кб
Android proxy - обещанного три года ждутsupport17.06.2011 18:090 Кб
Правильный протоколsupport27.05.2011 17:281 Кб
Гагарин. Made in USSR.ac12.04.2011 04:181 Кб
В домене .RU уже 3 млрд именsupport09.04.2011 07:161 Кб
Некрасов о Яндексеsupport21.02.2011 23:550 Кб
Назад к железуsupport16.02.2011 22:562 Кб
Android не smartsupport15.11.2010 01:461 Кб
Юбилей папки spamsupport13.11.2010 00:241 Кб
ВКонтакте внедряет Байесаac26.08.2010 19:231 Кб
Из жизни вирусовac07.07.2010 18:382 Кб
Imminet Protect переименовали в ClamAV for Windowsac09.05.2010 00:091 Кб
1 июля SQLite станет еще быстрееac08.05.2010 08:162 Кб
Thunderbird 3.1 beta2 улучшает поддержку Eservac06.05.2010 03:441 Кб
Eserv DNS-сервер принял первые доменыac07.04.2010 06:131 Кб
Berkeley DB 5 как убийца SQLite 3 ?ac03.04.2010 20:312 Кб
WinSock от меня усталsupport30.03.2010 21:300 Кб
acFilter или искусственный интеллект в кубеac26.03.2010 23:411 Кб
Как поломать Thunderbirdac26.03.2010 22:221 Кб
А по-немецки с лошадьмиsupport23.03.2010 01:061 Кб
Opera и русские X.509-сертификатыac26.02.2010 06:381 Кб
Загадка FileZilla 3.3.1ac04.02.2010 22:141 Кб
Firefox 3.5.6 поломал NTLMac01.02.2010 07:251 Кб
Обучение или дрессировкаac11.01.2010 17:210 Кб
Вышел Thunderbird 3.0ac11.12.2009 21:041 Кб
Нейробиология и обучение байесовsupport06.12.2009 07:130 Кб
Телефон против интернетаac04.12.2009 01:011 Кб
Голова профессора Доуэляac14.11.2009 23:011 Кб
IE8 самый быстрыйac13.11.2009 08:494 Кб
О доверии серверуac02.11.2009 18:131 Кб
IE8 и deflate content-encodingac12.10.2009 09:503 Кб
Культурный слойAndrey Cherezov26.09.2009 04:282 Кб
Как самостоятельно скомпилировать EservAndrey Cherezov21.08.2009 12:332 Кб
PHP и ISAPIAndrey Cherezov21.08.2009 01:321 Кб
Microsoft прячет VPNы от провайдеровAndrey Cherezov10.08.2009 19:222 Кб
Очень быстрая сеть или машина времениAndrey Cherezov06.08.2009 04:411 Кб
Главная статья про NATAndrey Cherezov24.07.2009 21:191 Кб
Тест на зрелость платформыAndrey Cherezov10.07.2009 21:031 Кб
Производительность CGI, FastCGI и ISAPI в acWEBAndrey Cherezov31.05.2009 10:363 Кб
FlashPlayer и deflate encodingAndrey Cherezov23.05.2009 08:091 Кб
Git over WebDav в EservAndrey Cherezov06.05.2009 19:592 Кб
Исправление Lightning для поддержки русских имен календарейAndrey Cherezov05.05.2009 21:541 Кб
Реклама отсутствующего Exchange ServerAndrey Cherezov05.05.2009 20:021 Кб
Архивация в Thunderbird3AndreyCherezov@24.04.2009 23:441 Кб
RU-CENTER - почта не работает три дняAndrey Cherezov23.04.2009 18:331 Кб
RU-CENTER заспамили насмертьAndrey Cherezov22.04.2009 14:592 Кб
Самопубликация для всех пользователей всех доменовAndrey Cherezov20.04.2009 07:551 Кб

Производительность CGI, FastCGI и ISAPI в acWEB

По просьбе Андрея Матвеева добавил в acWEB поддержку FastCGI. Потом позапускал небольшой стресс-тест для выявления багов, утечек и производительности: с помощью CURL 5ю потоками получал в каждом потоке по 100 раз страницу http://127.0.0.1/egroupware/admin/index.php (выбрано приложение, используемое заказчиком . В пяти режимах — CGI, FastCGI, FastCGI nts, ISAPI и ISAPI+eAccelerator. Багов и утечек не выявлено.

Производительность такова:
Версия PHPРежимНа 500 запросов затрачено секунд
5.2.9-2CGI317
5.2.9-2FastCGI140
5.2.9-2-ntsFastCGI101
5.2.9-2ISAPI126
5.2.8-ntsFastCGI115
5.2.8ISAPI+eAccelerator64
(для 5.2.9-2 нет готового eAccelerator; также нет версии eAccelerator для nts-вариантов PHP). В тестах FastCGI использовались 8 или 4 preforked процессов, Eserv распределял между ними нагрузку.

Итого: FastCGI быстрее ISAPI только в случае использования особой nts-версии ("непотокобезопасной"), в которой нет межпоточных блокировок. Между рекомендуемым пулом из 8 процессов и 4х процессов разницы в производительности практически нет. При использовании одного FastCGI-процесса падение производительности примерно на 30% (в таблице не показано).

10 запросов в секунду для eGroupware похоже не предел — ни в одном из тестов процессор (Athlon X2 3800) не загружался более чем на 60%. В FastCGI и CGI-тестах, т.е. PHP вне acWEB, загрузка процессора от acWEB, curl и MySQL была нулевой, все 60% приходились на PHP. Для сравнения последний тест (ISAPI+eAccelerator) с 10ю потоками, т.е. 1000 запросов, выполняется за 147 секунд (FastCGI — 231 секунду), средняя загрузка процессора меньше 50%. Можно было бы предположить, что PHP не может использовать более одного ядра процессора в ISAPI, но по графикам загрузки процессора видно, что равномерно используются оба ядра. Задержка (ожидание ресурса или просто пауза) в каком-то из компонентов PHP. Тот же 10-поточный тест, исполняющий PhpInfo() выполняется PHP-5.2.8 FastCGI за 58 секунд (ISAPI+eAccelerator за 22 секунды) и грузит процессор на 100%.

acWEB с поддержкой /FastCGI: http://www.eserv.ru/download/acWEB_310509.rar

Простейший способ включения FastCGI для PHP в OnRequest acWEB:
File *.php | FastCgi {HTTP[PhpFastCgiPort]}

По умолчанию сервером перебираются 8 портов, начиная с указанного. Можно ограничить командой
1 FcgiServers !

Запуск PHP для FastCGI в описанном варианте взаимодействия таким bat-файлом:
set PHP_FCGI_MAX_REQUESTS=0 start php-cgi.exe -b 9000 start php-cgi.exe -b 9001 start php-cgi.exe -b 9002 start php-cgi.exe -b 9003 start php-cgi.exe -b 9004 start php-cgi.exe -b 9005 start php-cgi.exe -b 9006 start php-cgi.exe -b 9007
 
Комментарии к этой версии (31.05.2009 10:36) [~Andrey Cherezov]