일부 Apache 스레드의 CPU 로드는 >10%이고 다른 스레드는 0.2%입니다.

일부 Apache 스레드의 CPU 로드는 >10%이고 다른 스레드는 0.2%입니다.

WordPress 웹 사이트를 실행하는 아파치 상자가 있습니다.

어떤 이유로 일부 아파치 스레드는 대부분의 CPU(10%+)를 사용하고 나머지는 거의(0.1~) 사용하지 않는 것 같습니다.

박스는 듀얼 CPU이고,Intel(R) Xeon(R) CPU E5620 @ 2.40GHz(각 CPU에는 4개의 코어와 8개의 스레드가 있음).

스레드가 이렇게 표시되는 이유는 무엇입니까? 사용자당 CPU가 동일하지 않아야 합니까?

로드를 줄이는 데 도움이 되는 Apache 최적화 세트가 있습니까(CentOS, PHP 및 MySQL을 사용한 기본 apache2 설치)?

프리포크 및 작업자 MPM 설정은 아래 기본값입니다.

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

높은 부하

답변1

어떤 이유로 일부 아파치 스레드는 대부분의 CPU(10%+)를 사용하고 나머지는 거의(0.1~) 사용하지 않는 것 같습니다.

여기서 더 주목해야 할 것은 실제 활동입니다. 제공한 스냅샷에서 실행 중인 작업 수는 7개이고 로드는 4개입니다.

따라서 이 시점에서 서비스가 필요한 사람의 수는 7명이었습니다. (아마도 httpd에 해당하는 사람은 6명만 볼 수 있습니다.) 나머지는 어떤 사건이 발생하지 않는 한 깨어나지 않는 수면 과정입니다.

일부 프로세스의 CPU 비율이 높고 다른 프로세스의 CPU 비율이 낮은 이유는 top.

로드를 줄이는 데 도움이 되는 Apache 최적화 세트가 있습니까?

실행 중인 프로세스의 절반이 5초 이내에 완료되지 않기 때문에 로드는 아마도 3~4개 정도일 것입니다(부하는 5초마다 내부적으로 측정됩니다).

  1. 활성 Apache 프로세스가 너무 많습니다. 프리포크 설정은 무엇입니까? 좀 더 실현 가능한 것으로 설정해 보세요. 최대 72가 합리적인 시작이고 거기서부터 조정될 수 있습니다. 해당 프로세스 수로 모든 사람에게 서비스를 제공할 수 있더라도 모든 프로세스가 동일한 비율로 느려지고 서비스를 받는 사람 수에 따라 로드가 증가하게 됩니다. 모든 사람에게 아주 천천히 봉사하는 것보다 할 수 있는 것은 빨리 제공하고 제공할 수 없는 것은 거부하는 것이 더 낫습니다.

  2. 귀하의 워드프레스 페이지 일부는 계산 비용이 많이 드는 것 같습니다. 더 비싼 콘텐츠 중 일부를 캐싱해 보세요.

관련 정보