ускорить процесс, чтобы использовать больше процессора для сценария php

Я собрал несколько разных ресурсов и решил много проблем, чтобы полностью настроить сборку PHP 7 на Ubuntu 15.04 и 15.10. Хотя это не скрипт пакета Debian, он устанавливает зависимости и конфигурацию Ubuntu. Ресурсы можно найти здесь.

Возможно, вам нужно будет выбрать ветвь релиза только через мастер и перезапустить скрипт.

0
задан 11 May 2017 в 00:20

6 ответов

Если общая производительность приемлема, наблюдаемое низкое использование процессора в php-процессе не является поводом для беспокойства. Использование ЦП может быть низким по различным причинам:

База данных может зависеть от тяжелых вычислений, и скрипту php часто приходится ждать ответа базы данных. База данных может ждать ввода-вывода, и скрипту php часто приходится ждать ответа базы данных. PHP-скрипт может ждать ввода-вывода. PHP-скрипт может вызывать много операций смены.

Чтобы повысить производительность, вы можете попробовать настроить вашу систему ввода-вывода, перемещать базу данных в основную память, использовать более быстрые вращающиеся диски, использовать твердотельные накопители (SSD), добавлять больше основной памяти (для кеша) и (см. руководство администратора вашей базы данных).

0
ответ дан 18 July 2018 в 13:32

Прежде всего, я предполагаю, что вы неправильно выполняете свой renice процесс.

Из man 2 nice:

Более высокое значение nice означает низкий приоритет.

Вы установили хороший уровень на уровне «19», это означает, что ваш процесс php будет таким же приятным, как и для другого процесса, и использует меньше ресурсов.

Если вы хотите, чтобы ваш процесс использовал больше ресурсов, вы должны установить его хороший уровень на "-20", например:

sudo renice -n -20 `pgrep -x php`

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

На самом деле, когда вы устанавливаете хороший уровень процесса на «-20», вы устанавливаете его приоритет в «100», существует много другого процесса с приоритетом от «0» до «100», который контролируется ядром.

0
ответ дан 18 July 2018 в 13:32

Ваш сценарий может быть однопоточным и, следовательно, не может использовать более 50% вашего процессора, если вы используете двойную установку.

1
ответ дан 18 July 2018 в 13:32

Если общая производительность приемлема, наблюдаемое низкое использование процессора в php-процессе не является поводом для беспокойства. Использование ЦП может быть низким по различным причинам:

База данных может зависеть от тяжелых вычислений, и скрипту php часто приходится ждать ответа базы данных. База данных может ждать ввода-вывода, и скрипту php часто приходится ждать ответа базы данных. PHP-скрипт может ждать ввода-вывода. PHP-скрипт может вызывать много операций смены.

Чтобы повысить производительность, вы можете попробовать настроить вашу систему ввода-вывода, перемещать базу данных в основную память, использовать более быстрые вращающиеся диски, использовать твердотельные накопители (SSD), добавлять больше основной памяти (для кеша) и (см. руководство администратора вашей базы данных).

0
ответ дан 24 July 2018 в 20:12

Прежде всего, я предполагаю, что вы неправильно выполняете свой renice процесс.

Из man 2 nice:

Более высокое значение nice означает низкий приоритет.

Вы установили хороший уровень на уровне «19», это означает, что ваш процесс php будет таким же приятным, как и для другого процесса, и использует меньше ресурсов.

Если вы хотите, чтобы ваш процесс использовал больше ресурсов, вы должны установить его хороший уровень на "-20", например:

sudo renice -n -20 `pgrep -x php`

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

На самом деле, когда вы устанавливаете хороший уровень процесса на «-20», вы устанавливаете его приоритет в «100», существует много другого процесса с приоритетом от «0» до «100», который контролируется ядром.

0
ответ дан 24 July 2018 в 20:12
  • 1
    Я использовал вот так: sudo renice 20 -p 30467, и я изменил, как вы сказали, но он не изменился, он все еще & lt; 50%. Я также проверяю системный монитор на все 4 ядра, и их использование скачкообразно скапливается на 50%, поэтому я вижу, что все еще есть возможность использовать. – felixRo 10 May 2017 в 15:00
  • 2
    (-20) не (20). – Ravexina 10 May 2017 в 15:06
  • 3
    Да, я установил это время -20, но не изменился заметно. – felixRo 10 May 2017 в 15:11
  • 4
    так что это может быть что-то другое, вызывающее эту ситуацию. дайте вашей базе данных более низкий хороший уровень, например -20. это может помочь вам. – Ravexina 10 May 2017 в 15:21
  • 5
    Спасибо за помощь, я постараюсь перестроить свой сценарий и отделить свои вычисления от вывода и посмотреть, как сильно это изменит использование процессора. Я думаю, что причина - причина. Так что, вероятно, ваш ответ исчерпывает тему. – felixRo 10 May 2017 в 15:35

Ваш сценарий может быть однопоточным и, следовательно, не может использовать более 50% вашего процессора, если вы используете двойную установку.

1
ответ дан 24 July 2018 в 20:12
  • 1
    Я действительно думаю, что ваш ответ имеет смысл, учитывая, что PHP не многопоточен. Возможно создать несколько параллельных PHP-скриптов в зависимости от того, какую ОС вы используете, используя forking. php.net/manual/en/function.pcntl-fork.php В большинстве случаев не стоит хлопот. – EJTH 11 September 2017 в 19:47

Другие вопросы по тегам:

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