트래픽이 많은 사이트에서 동적 콘텐츠가 많으며 주로 사용자가 생성합니다.
이 서버는 전용 서버이며 총 2.13GHz 프로세서에서 총 4 개의 Intel Xeon CPU X3210이 있습니다. 서버에 4GB의 RAM이 있고 MySQL 데이터베이스가 별도의 서버에서 실행된다는 것을 고려할 때 ServerLimit 및 MaxClients 아파치 지시문에 대한 최적의 값을 알아야합니다. 패널은 CentOS가 포함 된 DirectAdmin입니다.
아래는 현재 지시문이지만 5k 명 이상의 사용자가있는 피크 시간에는 중요한 지연이 눈에 띄게 나타납니다. 페이지가 빠르게 생성되는 것처럼 보이므로 (페이지 생성 시간 카운터를 구현 한) MySQL의 결함이 아닙니다. 페이지가 응답을 시작하고 브라우저로 전송 될 때까지 연결 지연.
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
top 명령을 사용하여 서버를 모니터링하면 CPU 사용량은 피크 시간에 20 % ~ 30 %를 넘지 않습니다. 그 당시 MySQL 서버는 30 ~ 50 %의 사용량을 가지고 있으며 느린 쿼리를 수정하기 위해 끊임없이 노력하고 있지만 다른 문제입니다. 정적 페이지도 피크 시간에로드하는 데 시간이 오래 걸리기 때문에 DB 병목 현상이 아니라는 것을 알고 있습니다.
이러한 가치를 최적화하기위한 조언은 대단히 감사하겠습니다.