Назад | Перейти на главную страницу

Загрузка процессора в некоторых потоках apache составляет> 10%, в других потоках - 0,2%

У меня есть сервер Apache, на котором запущен сайт WordPress.

По какой-то причине кажется, что некоторые потоки apache используют большую часть ЦП (10% +), а остальные немного (0,1 ~).

Коробка двухпроцессорная, Intel (R) Xeon (R) CPU E5620 @ 2,40 ГГц (каждый процессор имеет 4 ядра и 8 потоков).

По какой причине потоки отображаются таким образом, если они не должны быть одинаковыми для каждого пользователя?

Есть ли какой-либо набор оптимизаций apache для снижения нагрузки (CentOS, базовая установка apache2 с PHP и MySQL)?

Настройки prefork и worker 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>

По какой-то причине кажется, что некоторые потоки apache используют большую часть ЦП (10% +), а остальные немного (0,1 ~).

Здесь вам нужно уделять больше внимания вашей реальной деятельности. В предоставленном вами снимке запущенных задач 7 при нагрузке 4.

Итак, на тот момент количество людей, нуждающихся в обслуживании, составляло 7 (вероятно, но я вижу только 6, отнесенных к httpd). Остальные - это спящие процессы, которые не проснутся, если не произойдет какое-либо событие.

Причина, по которой у вас высокий процент использования ЦП в некоторых процессах, ниже в других, заключается в том, что только очень многим из них есть чем заняться в течение данного второго периода, измеренного в top.

Есть ли какой-нибудь набор оптимизаций apache для снижения нагрузки?

Что ж, ваша нагрузка, вероятно, колеблется от 3 до 4, потому что половина запущенных процессов, которые вы, вероятно, не завершили в течение 5 секунд (нагрузка измеряется внутри каждые пять секунд).

  1. Там слишком много активных процессов apache. Какие у вас настройки prefork? Попробуйте установить что-нибудь посильнее. Максимум 72 может быть разумным началом и настройкой оттуда. Даже если бы вы могли обслуживать всех с таким количеством процессов, вы заставите все процессы замедляться в равной пропорции, а нагрузка увеличиваться в соответствии с количеством обслуживаемых людей. Лучше подавать то, что вы можете быстро, и отвергать то, чему не можете служить, чем обслуживать всех очень медленно.

  2. У меня такое ощущение, что некоторые части вашей страницы wordpress требуют больших вычислительных ресурсов. Попробуйте кэшировать этот более дорогой контент.