문제

우리가 현재 사용하여 아파치 2.2.3 및 Tomcat5(에 포함 JBoss4.2.2)용 mod_proxy_jk 으로 커넥터에 연결합니다.

할 수 있는 사람에 올바른 방법으로 계산하/구성 값 아래의(뿐만 아니라 다른 것과 관련이 있다).모두 아파치 톰캣에서 실행되는 별도의 기계하고 풍부한 양의 ram(4gb 각).

관련 server.xml 일부:

<Connector port="8009"
           address="${jboss.bind.address}"
           protocol="AJP/1.3"
           emptySessionPath="true"
           enableLookups="false"
           redirectPort="8443"
           maxThreads="320"
           connectionTimeout="45000"
    />

관련 httpd.conf 일부:

<IfModule prefork.c>
  StartServers       8
  MinSpareServers    5
  MaxSpareServers   20
  ServerLimit      256
  MaxClients       256
  MaxRequestsPerChild  0
</IfModule>
도움이 되었습니까?

해결책

고려해야 합니다 작업을 서버를 얻을 수 있습니다.

가장 중요한 요소가 될 수 있습의 번호를 동시에 연결되어 있는 클라이언트는 피크 시간에.하려고 결정하고 조정하는 설정 방법에서는:

  • 거기에는 충분한 처리를 스레드에서 모두 아파치 톰캣는 그들이 할 필요가 없이 스폰 새로운 스레드 서버 로드
  • 가지 방법으로 더 많은 가공에서 스레드 서버는 데 필요한 보다는 것처럼 폐기물을 리소스입니다.

이 종류의 설정을 최소화할 수 있는 내부 정비의 오버헤드 서버는 데 도움이 할 수있는 많은,특히 때 부하가 산발적.

예를 들어 고려 응용 프로그램이 어디 있~300 새로운 요청이/초입니다.각 요청에 필요한 평균이 2.5 초을 제공합니다.즉 주어진 시간에 당신은~750 는 요청을 처리해야 합니다.이 상황에서 당신은 아마 조정하려는 귀하의 서버 그래서 그들은~750 처리 스레드에서 시작 및 너는 뭔가를 추가하려면 다음과 같~1000 처리 스레드에서 최대는 손잡이가 매우 높은 하중이다.

또한 고려에 대한 정확히 무엇을 필요로 하는 실습니다.이전를 들어 각각의 요청이 다른 사람들로부터 독립적이 없었 세션 추적이 사용됩니다.에서 더 많은"web-틱"시나리오가 있을 수 있습에 로그인한 사용자의 웹 사이트에 사용되는 소프트웨어,아파치 및/또는 톰캣을 사용해야 할 수 있습니다 같은 스레드 봉사하는 요청이 오는 하나의 세션이 있습니다.이 경우에는,당신이 더 필요할 수 있습 threads.그러나 내가 알고 있는 Tomcat 적어도,당신은 정말 필요하지 않습니다 고려하는 이 작품으로 스레드 풀을 내부적으로습니다.

다른 팁

MaxClients

이것은 기본적인 캡의 병렬 클라이언트 연결이 당신의 아파치를 처리해야 한다.

와 prefork,하나만 요청을 처리할 수 있습별 과정이다.따라서 전체적인 아파치 프로세스 에서 가장 $MaxClients 에서 요청하는데 걸리는 시간을 처리 단일 요청을 합니다.물론,이상 최대의 수에 도달하는 경우 응용 프로그램이 필요한보다 1/$MaxClients 자원별 요청을 합니다.

는 경우,예를 들어,응용 프로그램이 두 번째의 cpu 시간에 응답하는 단일 요청 MaxClients 설정하는 것을 제한 처리량을 네 가지 요청을 초당:각 요청을 사용하는 아파치 연결과 아파치만 처리 네 시간이다.그러나 서버가 있는 경우에만 두 개의 Cpu,심지어 이 도달 할 수 있기 때문에,모든 벽 시계 두 번째는 두 개의 cpu 초,그러나 요청해야 합 네 cpu 초입니다.

MinSpareServers

이 아파치를 알려줍니다 얼마나 많은 유휴 프로세스를 끊어야 합니다.더 큰 이 숫자는 더 폭발 load apache 삼킬 수 있을 필요로하기 전에 생성분의 프로세스는 비용과 따라서 느리게 현재 요청을 합니다.

올바른 설정을 이에 따라 귀하의 작업이 있습니다.이 있는 경우는 페이지는 하위 요구(사진,iframe,javascript,css)다음을 타격의 단 페이지에 사용할 수 있는 더 많은 프로세스에 대해 짧은 시간입니다.

MaxSpareServers

너무 많은 사용하지 않는 아파치 프로세스 주위에 매달려 그냥 폐기물 메모리고,따라서 아파치 사용하 MaxSpareServers 번호를 제한 금액의 예비 프로세스에 들고 예약의 버스트를 요청합니다.

MaxRequestsPerChild

이 수를 제한하는 요청을 하나의 프로세스 처리에 걸쳐 그것의 일생이 있습니다.는 경우 당신은 매우 걱정 안정성을 두어야 합 실제 여기에 제한을 지속적으로 휴지통 아파치 프로세스를 방지하는 리소스에서 누출 시스템에 영향을 미칠.

StartServers

이것은 단지 양의 프로세스 아파치를 시작합니다.설정이 일반적인 금액의 실행중인 아파치 프로세스를 줄이는 따뜻한 시간이 있습니다.심지어는 무시한다면 이 설정은 아파치 사용하 분/MaxSpareServers 값을 새로운 프로세스 생성으로 필요합니다.

더 많은 정보

또한 참조 문서는 아파치는 다중처리 모듈.

기본 설정은 일반적으로 괜찮은 출발점이 무엇을 보고 귀하의 응용 프로그램입니다 정말 필요합니다.저는 얼마나 많이 알고하지 않 교통 당신이 예상하는,그래서 추측에서 MaxThreads,MaxClients 및 MaxServers 이 조금 어렵습니다.나는 당신을 말할 수 있는 대부분의 고객에게와 거래(작업에 대한 리눅스 웹 호스팅,주로 거래하는 고객과의 실행 Java 앱에서 톰캣)기본 설정을 사용에 대한 꽤 시간이 없이 너무 많이 바뀌는 필요합니다.

당신은 많은 것을 기대하지 트래픽 다음,이러한 설정은"너무 높은"정말 효과를 너무 많이 하거나.아파치가 리소스를 할당한 256 잠재력을 클라이언트가 되지 않는다면 그것은 필요합니다.동 Tomcat 니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top