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

PHP Высокая загрузка ЦП

У меня есть выделенный сервер с 2 процессорами, 4 ядрами и 16 ГБ оперативной памяти. Я размещаю некоторые приложения php, которые используют высокое использование php и mysql, когда я проверяю верхнюю команду, я обнаруживаю, что php и mysql потребляют около 80% ЦП, но при проверке команды mpstat чтобы проверить использование каждого ядра, я обнаружил, что все они на 95% простаивают, какое-либо объяснение этому? обратите внимание, что сервер становится медленным при запуске этих приложений. мне нужен другой сервер с большим количеством ядер?

top command out put:
7589 root      20   0  287648  31480  18540 R  78.7  0.2   1:49.11 php
1006 mysql     20   0 2400692 214440   6704 S  19.3  1.3 434:34.99 mysqld
18 root      20   0       0      0      0 S   2.0  0.0   1435:51 ksoftirqd/2
3 root      20   0       0      0      0 S   1.3  0.0   1424:58 ksoftirqd/0
5228 www-data  20   0  339616  29608  17772 S   1.3  0.2   0:00.72 apache2

mpstat -P ALL output:
root@datax:~#  mpstat -P ALL
Linux 3.16.0-4-amd64 (datax)    08/15/2016      _x86_64_        (4 CPU)

04:01:58 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
04:01:58 AM  all    1.49    0.13    0.83    2.23    0.00    0.03    0.00    0.00    0.00   95.29
04:01:58 AM    0    1.38    0.13    0.62    2.30    0.00    0.03    0.00    0.00    0.00   95.54
04:01:58 AM    1    1.38    0.13    0.62    2.32    0.00    0.03    0.00    0.00    0.00   95.53
04:01:58 AM    2    1.62    0.13    1.04    2.15    0.00    0.03    0.00    0.00    0.00   95.03
04:01:58 AM    3    1.59    0.13    1.04    2.16    0.00    0.03    0.00    0.00    0.00   95.06

Если вы запускаете один экземпляр кода за раз, а код не является многопоточным, большее количество ядер вам не поможет.

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