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

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.

Top сообщает, что ваша система ничего не делает, поскольку она на 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