2011-01-20 102 views
2

我有一个Web服务器,唯一的任务是运行图像处理。
Web服务器上的图像处理加载相同的XML设置文件(最大2MB)。
要保存XML文件加载时间为每个请求我使用如下结构:使用FastCGI的高负载Web服务器的最佳实践

  1. web服务器是Apache的(2.2.16)用图象处理应用程序(C++)MPM prefork的和FastCGI(fcgi_mod)。
  2. 调用图像处理应用程序加载的XML文件,并产生N个线程,并且每个线程运行:

    thread_func()
    {
    FCGX_InitRequest
    而(真)
    {
    FCGX_Accept_r
    请求(图像)处理和FCGX_FPrintF/FCGX_PutStr
    FCGX_Finish_r
    }
    }

一个这种模式的弱点是,虽然FCGX_Accept_r和FCGX_Finish_r调用之间在每个Apache进程最多一个线程会做其工作。那么它是否值得线程只有每个进程(单线程),但增加MaxClients?

预先感谢您:)

回答

0

可以使用fastcgi模块,它允许每个进程

+1

一个多线程的线程的数量是没有问题的。我可以为每个Apache Web服务器进程创建多个线程。问题在于代码执行在FCGX_Accept_r和FCGX_Finish_r调用之间时是否值得。 – Valentine 2011-01-20 15:38:27