Apache가 MaxClient에 도달하면 사용자에게 무엇을 알 수 있습니까?


8

때때로 Apache 오류 로그에서 다음을 찾을 수 있습니다.

[error] server reached MaxClients setting, consider raising the MaxClients setting

메모리 부족 문제로 인해 과거에 MaxClients를 의도적으로 낮추었습니다 (60).하지만 서버 에서이 한계에 도달하면 사용자 끝에서 무슨 일이 일어나고 있는지 정확하게 알고 싶습니다. 액세스하는 페이지를로드하는 데 시간이 더 걸립니까? 그들은 일종의 오류 메시지를 얻습니까?


1
아마도 이것에 대한 테스트를 작성하는 것이 어렵지 않을 것입니다. 테스트 서버에서 MaxClients를 1로 떨어 뜨리고 여러 창이나 탭에서 항목을 새로 고칠 때 어떻게되는지 확인하십시오.
ghoti

확실히-나는 내가 그것을하기 전에 누군가가 알기를 바랐다. Apache의 설명서에서 정보를 찾을 수 없습니다.
runningonplants

답변:


13

처음에는 클라이언트 요청이 아파치 서버에서 사용 가능한 프로세스 / 스레드가 될 때까지 큐에 대기됩니다. 따라서 클라이언트는 페이지로드가 지연되는 것을 보게됩니다. 자세한 내용은 MaxClients파라미터 설명서 를 참조하십시오.

백 로그 큐에 배치되면 클라이언트 요청이 결국 클라이언트 측에서 시간 초과 될 수 있습니다. 그러면 사용자에게 브라우저에 오류 페이지가 표시되어 서버가 응답을 제공하는 데 너무 오래 걸렸다는 메시지가 표시됩니다. 예를 들어 Firefox 의 기본 시간 초과 값은 300 초입니다 . 또는 사용자가 시간 초과 전에 요청을 취소합니다 ...

그런 다음 서버가 더 많은 요청을 받고 시간 내에 사용 가능한 프로세스 / 스레드를 확보 할 수없는 경우 ListenBacklog큐가 채워질 수 있으며 (기본값은 511 큐 요청) 후속 요청은 전혀 처리되지 않습니다. 그런 다음 브라우저는 웹 사이트가 완전히 다운 된 것처럼 사용자에게 웹 사이트에 연결할 수 없음을 알려줍니다.

이 백 로그 큐는 TCP 구현에서 OS 레벨에서 관리됩니다. 리눅스에서, listen매뉴얼 페이지는 그것이 관리되는 방법에 대한 더 많은 정보를 제공 할 것입니다. 다음은 리눅스와 BSD 시스템의 TCP 백 로그 큐에 대한 또 다른 통찰력있는 정보 입니다.


정확히 내가 알아야 할 것. 감사합니다! ListenBacklog 큐에 몇 개의 프로세스가 있는지 확인할 수있는 방법이 있는지 알고 있습니까?
runningonplants

1
이 백 로그 큐는 tcp 스택의 일부로 OS에서 관리합니다. 상기보고이 listen사람이 페이지를. 이 대기열에 무엇이 들어 있는지 직접 알 수있는 방법이 확실하지 않습니다. 또한이 SO 질문을 참조하십시오 . 내 답변에 더 많은 정보를 추가했습니다.
Tonin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.