Apache, похоже, не использовать несколько ядер

У меня есть выделенный сервер с 16 ГБ ОЗУ с Xeon E5504 (8 ядер @ 2.0GHZ), работающий с Centos 7. Я запустил верхнюю команду и вижу, что 7 ядер близки к бездействию большую часть времени, а затем одно ядро ​​выходит из строя. Я вижу, что оно превышает 100%, чего я не понимаю.

%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 16479600 total,  1233968 free,   616824 used, 14628808 buff/cache
KiB Swap:   523260 total,   499720 free,    23540 used. 15342640 avail Mem

Сервер используется только как веб-хост. Apache, MySQL и PHP. Я не внес никаких изменений в apache из его конфигурации по умолчанию. Я слышал, что конфигурация apache по умолчанию поддерживает несколько потоков, но это явно не так.

mysqld и httpd - единственные вещи, использующие большое количество ресурсов. Всего apache получает около 100 тысяч запросов в неделю. Более чем достаточно для этого сервера, но по мере того, как я продолжаю добавлять больше сайтов, я не хочу замедлять его, поскольку все находится на одном процессоре.

Я прочитал об этом, и кажется, что "prefork" нужно изменить в чтобы Apache занимал больше ресурсов. Я выполнил следующую команду, чтобы увидеть конфигурацию по умолчанию, и это не похоже на то, что prefork даже установлен

/usr/sbin/apachectl -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c

Я не знаю, как протестировать систему, чтобы узнать, какая конфигурация сейчас используется и почему используется только одно ядро. Я не заметил значительного увеличения производительности при переносе сайтов с одноядерного VPS низкого уровня на этот сервер, поэтому я беспокоюсь, что что-то не так с конфигурацией.

Я проверил /etc/http/conf/httpd.conf, и все это виртуальные хосты. Нет никаких строк, относящихся к максимальному количеству клиентов и другим значениям, которые я видел людьми, использовавшимися в предварительном запросе if.

0
задан 29 January 2016 в 13:32
1 ответ

Топ говорит, что ваша система ничего не делает, так как на 100% простаивает.

Поля имеют следующее значение и не указывают конкретные ядра.

       us, user    : time running un-niced user processes
       sy, system  : time running kernel processes
       ni, nice    : time running niced user processes
       wa, IO-wait : time waiting for I/O completion
       hi : time spent servicing hardware interrupts
       si : time spent servicing software interrupts
       st : time stolen from this vm by the hypervisor
3
ответ дан 4 December 2019 в 12:24

Теги

Похожие вопросы