Centos 7에서 httpd를 사용하여 실행되는 웹사이트가 있습니다.
CPU는 8개이고 RAM은 32GB입니다.
웹사이트에 동시에 500~600명 이상의 사용자가 있으면 서버 응답이 점점 높아집니다. 그래도 CPU부하가 20~25% 정도이고 RAM도 사용하지 않습니다.
성능을 높이기 위해 무엇을 구성할 수 있습니까? 아니면 무엇을 놓치고 있습니까? 우리 페이지는 100% 캐시되어 있으며 데이터베이스 쿼리나 그와 유사한 것을 실행하지 않습니다.
httpd.conf
HostnameLookups Off
KeepAlive On
MaxKeepAliveRequests 1500
KeepAliveTimeout 5
<IfModule prefork.c>
StartServers 30
MinSpareServers 30
MaxSpareServers 50
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 10000
</IfModule>
맨 위:
%Cpu(s): 1.9 us, 2.6 sy, 0.0 ni, 95.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32779548 total, 3268520 free, 12679060 used, 16831968 buff/cache
답변1
Apache는 매우 효율적입니다. 기술적으로는 내 답변에 적합해야 하지만 서버 자체보다는 사용자를 혼란에 빠뜨리는 다른 것이 거의 확실합니다. 아마도 실행 중인 CGI이거나 완전히 다른 것일 수 있습니다.
top
실제로 어떤 프로그램이 리소스를 사용하고 있는지 확인하기 위해 실행한 다음 거기서부터 시작하여 , 본 내용을 게시하는 동안 더 많은 질문을 할 수도 있습니다.
Apache가 실제로 중단될 것으로 제가 생각할 수 있는 유일한 모호한 예는 다음과 같습니다.
어떻게든 재귀적으로 만들려는 경우 - 한 URL에서 동일한 URL로 리디렉션을 수행하고 계속해서 다시 수행하는 경우...
구성에서 확인되지 않는 도메인 이름을 사용하는 경우. 철자가 틀리거나 만료되었거나 DNS가 엉망일 수 있습니다. 사소한 실수는 괜찮지만 일부 구성에서는 적중할 때마다 실패한 DNS 조회를 여러 번 시도할 수 있습니다.
귀하의 CPU가 여전히 꽤 유휴 상태인 것 같습니다. 따라서 아마도 일부 DNS나 시스템 문제 등을 기다리고 있는 것 같습니다.
"kdump"는 실제로 핵심 내용을 파악하고 무슨 일이 일어나고 있는지 확인할 수 있지만, 먼저 "top"(또는 ps -axww)의 나머지 부분을 살펴보고 단순히 아파치라고 가정하기보다는 어떤 프로그램이 실제로 시스템 리소스를 소모하고 있는지 살펴보세요. 아파치 자체가 문제일 수도 있고 아닐 수도 있기 때문입니다.