Оптимизируйте Lighttpd для большого количества соединений, обслуживающих небольшие файлы - PullRequest
0 голосов
/ 07 июля 2011

У меня есть веб-сервер Lighttpd (1.4.28), работающий на Centos 5.3 и PHP 5.3.6 в режиме fastcgi.

Сам сервер является четырехъядерным процессором с оперативной памятью 1 ГБ и используется для записи статистики просмотра для видео платформы.

Каждый запрос состоит из очень небольшого количества отправляемого xml, а принимающий скрипт php выполняет простой запрос на вставку или UPDATE mysql. Php возвращает очень маленький ответ для подтверждения запроса.

Эти запросы выполняются очень часто, и мне нужно, чтобы система могла обрабатывать как можно больше одновременных соединений с высокой скоростью запросов / секунду.

Я отключил поддержку активности, так как будут выполняться только отдельные запросы, и поэтому мне не нужно держать соединения открытыми.

Одна из вещей, которая меня беспокоит, это то, что в состоянии сервера я вижу много соединений в состоянии «чтение». Я так понимаю, это контролируется server.max-read-idle, который по умолчанию равен 60? Можно ли изменить это значение примерно на 5, так как я вижу, что большинство соединений остаются открытыми в течение длительных периодов времени.

Также, что еще я могу сделать, чтобы оптимизировать lighttpd, чтобы иметь возможность обрабатывать множество небольших запросов

Это мой первый опыт настройки lighttpd, так как я подумал, что в этом случае он будет более подходящим, чем apache.

Спасибо

Ирфан

1 Ответ

1 голос
/ 29 октября 2011

Я полагаю, что проблема не в веб-сервере, а в вашем PHP-приложении, особенно в части MySQL.

Я бы заменил lighty на apache + mod_php, а mysql на некоторые NoSQL, такие как Redis, который поставит в очередьвставка запросов к базе данных.Затем я написал бы демон / crontab, который вставляет данные в MySQL.

Раньше у нас было такое, но вместо Redis мы создавали файлы TXT в одном каталоге.

...