아파치 프리 포크 최적화-올바른 'MaxRequestsPerChild'값 선택


9

가능한 많은 연결을 처리하도록 웹 서버를 최적화하려고합니다. 많은 게시물과 Apache 노트를 읽었습니다. 어떤 값을 선택해야하는지 이해하려고합니다 MaxRequestsPerChild.

처음에는 4,000으로 설정하려고 시도했지만 서버가 많은 요청을 처리하는 데 어려움이 있었으므로 서버를 높이기 시작했습니다. 현재 내 설정은 다음과 같습니다.

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  40000
</IfModule>

MaxRequestsPerChild40,000으로 설정 한 후 서버는 더 많은 메모리 / CPU를 사용하지 않으면 서 더 많은 연결을 처리 할 수있었습니다.

누구 든지이 값이 너무 높거나 높은 값을 갖는 것이 괜찮은지 말해 줄 수 있습니까?

감사!

OS 정보 :

[root@web06 ~]# uname -a
Linux web 2.6.18-164.el5PAE #1 SMP Thu Sep 3 04:10:44 EDT 2009 i686 i686 i386 GNU/Linux
[root@web06 ~]# free
             total       used       free     shared    buffers     cached
Mem:       3814660    3502968     311692          0     144368    2970468
-/+ buffers/cache:     388132    3426528
Swap:      5210104          0    5210104

답변:


10

MaxRequestsPerChild동적 스크립트를 실행할 때 시간이 지남에 따라 메모리 누출량을 제한하는 데만 유용합니다. 정적 콘텐츠 또는 매우 작거나 간단한 스크립트를 제공하는 경우 별다른 영향을 미치지 않고 0 또는 매우 높게 설정할 수 있습니다. 더 크고 복잡한 스크립트를 실행하는 경우 0 / 높음으로 설정하면 Apache 프로세스가 점점 더 많은 메모리를 소비하게됩니다. 정확히 특정 응용 프로그램에 따라 더 많은 것이 달라집니다.

다른 한편으로, 매우 낮게 설정하면 Apache 프로세스가 계속 다시 시작되므로 실제로 CPU 사용량이 약간 증가 할 수 있습니다.

프로세스에서 사용할 수있는 메모리 양을 확인하기 위해 간단한 테스트를 수행합니다. MaxRequestsPerChild0으로 설정 하고 Apache를 다시 시작하십시오. 몇 페이지를 테스트하고 Apache 프로세스의 초기 크기가 무엇을 사용하는지 확인하십시오 top. 응용 프로그램 및 페이지보기에 따라 몇 시간 / 일 / 주 후에 다시 확인하여 어떻게 증가하는지 확인하십시오. 많이 자라지 않으면 0 또는 매우 큰 값이 MaxRequestsPerChild좋습니다.

Apache 프로세스의 최대 크기를 설정 한 경우 (즉, 50MB 이하로 설정하려는 경우) MaxRequestsPerChildApache보다 작게 유지하는 값을 찾을 때까지 다양한 값으로 동일한 테스트를 수행 할 수 있습니다 .


1
Windows Server를 사용하여 페이지를 테스트하고 Apache 프로세스의 크기를 확인하려면 어떻게해야합니까?
Ahmad Alfy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.