2
我有一個Web服務器,唯一的任務是運行圖像處理。
Web服務器上的圖像處理加載相同的XML設置文件(最大2MB)。
要保存XML文件加載時間爲每個請求我使用如下結構:使用FastCGI的高負載Web服務器的最佳實踐
- web服務器是Apache的(2.2.16)用圖象處理應用程序(C++)MPM prefork的和FastCGI(fcgi_mod)。
調用圖像處理應用程序加載的XML文件,併產生N個線程,並且每個線程運行:
thread_func()
{
FCGX_InitRequest
而(真)
{
FCGX_Accept_r
請求(圖像)處理和FCGX_FPrintF/FCGX_PutStr
FCGX_Finish_r
}
}
一個這種模式的弱點是,雖然FCGX_Accept_r和FCGX_Finish_r調用之間在每個Apache進程最多一個線程會做其工作。那麼它是否值得線程只有每個進程(單線程),但增加MaxClients?
預先感謝您:)
一個多線程的線程的數量是沒有問題的。我可以爲每個Apache Web服務器進程創建多個線程。問題在於代碼執行在FCGX_Accept_r和FCGX_Finish_r調用之間時是否值得。 – Valentine 2011-01-20 15:38:27