Лучшие практики использования FastCGI для высоконагруженного веб-сервера - PullRequest
2 голосов
/ 20 января 2011

У меня есть веб-сервер, единственной задачей которого является запуск обработки изображений.
При обработке изображений на веб-сервере загружается тот же файл настроек XML (до 2 МБ).
Чтобы сэкономить время загрузки XML-файла для каждого запроса, я использую следующую архитектуру:

  1. Веб-сервер Apache (2.2.16) с предфорком MPM и FastCGI (fcgi_mod) с приложением для обработки изображений (C ++).
  2. Запущенное приложение для обработки изображений загружает файл XML и порождает N потоков, и каждый поток запускается:

    thread_func ()
    {
    FCGX_InitRequest
    в то время как (истина)
    {
    FCGX_Accept_r
    Обработка запроса (изображения) и FCGX_FPrintF / FCGX_PutStr
    FCGX_Finish_r
    }
    }

Одним из недостатков этой модели является то, что максимум один поток в каждом процессе Apache будет выполнять свою работу, находясь между вызовами FCGX_Accept_r и FCGX_Finish_r. Стоит ли тогда иметь 1 thread only на процесс (один поток), но для увеличения MaxClients?

Заранее спасибо:)

1 Ответ

0 голосов
/ 20 января 2011

Вы можете использовать модуль fastcgi , он допускает более одного потока на процесс

...