내 사이트는 하루 중 2시간 동안 많은 트래픽을 수신합니다(분당 조회수 2000회). 나머지 시간에는 트래픽이 더 적습니다(분당 500e 조회수). MaxClients 및 MaxSpareServers 값을 실험해 왔지만 여전히 피크 시간 동안 가동 중지 시간이 발생합니다.

가지고 있는 RAM의 양을 기준으로 구성에 가장 적합한 값을 어떻게 계산할 수 있습니까?

각 프로세스는 36-40M의 메모리와 같습니다.

             total       used       free     shared    buffers     cached
Mem:          3096        793       2302          0          0          0
-/+ buffers/cache:        793       2302
Swap:  

      0          0          0

지금 내가 사용하고 있는 값

<IfModule prefork.c>
StartServers 10
MinSpareServers 22
MaxSpareServers 60
ServerLimit 90
MaxClients 90
MaxRequestsPerChild  400

업데이트: 내 호스팅 제공업체에서 이것을 찾았습니다.

http://kb.mediatemple.net/questions/246/(dv)+HOWTO:+Basic+Apache+performance+tuning+(httpd)

나는 익스트림 패키지를 가지고 있고 MaxClients에서 200 대신 190을 사용했습니다. 반나절 동안 시도했는데 일부 malloc 오류 명령줄 메시지가 표시되었지만 free 명령을 사용하면 free 열에 800M 정도가 표시되었습니다.

답변1

서버에 피크가 발생하는 경우 Apache가 프로세스 및 스레드 생성을 매우 느리게 처리하기 때문에 그럴 수도 있습니다(mpm_prefork 모드에서는 초당 1개의 새로운 하위 프로세스입니다). '높은 트래픽' 요구 사항(200 프로세스라고 가정)을 알고 있다면 아파치에게 다음을 요청하도록 지시하세요.언제나90%의 시간 동안 아무것도 하지 않더라도 200개의 프로세스가 준비되어 있습니다. 사람들이 들어올 때 준비가 되어 있을 것입니다.

이 편리한 프레젠테이션을 확인하세요(오래되었지만 멋지네요) http://www.techpresentations.org/Hacking_Apache_HTTP_Server_at_Yahoo!

StartServers, MaxSpareServers, MinSpareServers가 필요하지 않습니다. MaxClient만 있으면 됩니다(일정한 풀 크기).

답변2

대답은 귀하가 제공하는 콘텐츠 유형에 따라 크게 달라집니다. 동적 콘텐츠인가요, 아니면 정적 콘텐츠인가요? 광범위한 콘텐츠입니까, 아니면 단일 문서입니까?

당신이 사용할 수있는멤캐시드문서를 메모리에 저장하여 문서를 상당히 확장할 수 있지만(디스크 병목 현상 제거) 이는 RAM 용량과 콘텐츠 변경 여부에 따라 다릅니다.

답변3

서버 하드웨어(특히 메모리)와 실행 중인 사이트의 효율성에 따라 테스트가 필요합니다. 다운타임이 발생하면 무슨 일이 발생하나요? 설정한 한도에 도달하고 있나요? 메모리가 부족합니까?

답변4

메모리가 엄격하게 제한된 상황(VPS)에 있는 경우 스왑 종료를 방지하기 위해 기본 maxclients를 낮춰야 할 수도 있습니다.

그렇지 않다면,만지지 마세요.

아파치 하위 항목을 조정하는 것은 사람들이 이익보다 해를 끼치는 것이 압도적으로 더 많은 커널을 사용자 정의하는 것과 같은 작업 중 하나입니다. 비록 피해가 아무런 이익도 없이 오후를 낭비하는 것일지라도 말입니다. Apache의 httpd 프로젝트 담당자는 자신이 하는 일에 꽤 능숙하다는 것이 밝혀졌습니다! 내 말은, 누가 그걸 고맙게 생각하겠어요?

관련 정보