2011-01-20 2 views
2

유일한 작업은 이미지 처리를 실행하는 웹 서버입니다.
웹 서버의 이미지 처리는 동일한 XML 설정 파일 (최대 2MB)을로드합니다. 이미지 처리 응용 프로그램 (C++)와 MPM의 prefork의와 FastCGI를 (fcgi_mod)와로드가 많은 웹 서버에 FastCGI를 사용하는 모범 사례

  1. 웹 서버는 아파치 (2.2.16)입니다 :
    나는 다음과 아키텍처를 사용하는 모든 요청에 ​​대해 XML 파일 로딩 시간을 저장합니다.
  2. 호출 이미지 처리 응용 프로그램은 XML 파일을로드하고 N 스레드와 각 스레드 실행 급부상

  3. : (()
    {
    FCGX_InitRequest
    동안 (사실)
    {
    FCGX_Accept_r
    요청

    thread_func을 이미지) 처리 및 FCGX_FPrintF/FCGX_PutStr
    FCGX_r
    }
    이 모델의 약점}

하나는 FCGX_Accept_r 및 FCGX_Finish_r 호출 사이하면서 각각의 아파치 프로세스의 최대 하나 개의 스레드가 작업을 할 것입니다. 그럴 가치가 스레드 프로세스 (단일 스레드)에만 있지만 MaxClients를 높이려면?

은 사전에 감사합니다 :) 당신이 fastcgi 모듈을 사용할 수 있습니다

답변

0

, 그것은 스레드의 수는 문제가되지 않습니다 과정

+1

당 하나 개 이상의 스레드를 할 수 있습니다. 나는 아파치 웹 서버 프로세스 당 하나 이상의 스레드를 생성 할 수있다. 문제는 코드 실행이 FCGX_Accept_r과 FCGX_Finish_r 호출 사이에있는 동안 가치가 있는지입니다. – Valentine

+0

각 스레드가 하나의 요청을 받아서이 요청을 처리 할 수 ​​있습니다. 예 – kinnou02

+0

각 웹 서버에서 10 개의 스레드가있는 5 개의 웹 서버 프로세스가 있고 50 개의 요청이 동시에 처리 될 수 있습니까? – Valentine