Является ли использование функции php sleep () хорошей идеей, чтобы снизить нагрузку на процессор тяжелым скриптом? - PullRequest
9 голосов
/ 18 марта 2009

У меня есть команда «создать сайт», которая анализирует все таблицы для повторной публикации всего сайта на фиксированных HTML-страницах. Это тяжелый процесс, по крайней мере, на моей локальной машине (процессор увеличивается). На производственном сервере это пока не проблема, но я бы хотел сохранить ее в будущем. Поэтому я рассматриваю возможность использования функции php sleep () между каждым шагом тяжелого сценария, чтобы сервер успел «перевести дыхание» между тяжелыми шагами.

Это хорошая идея или она будет бесполезной?

Ответы [ 5 ]

6 голосов
/ 18 марта 2009

Если вы используете php5 и он используется в режиме CGI (а не mod_php), тогда вы можете использовать proc_nice.

Это может позволить команде «создать веб-сайт» использовать столько процессоров, сколько ей нужно, в то время как никто другой не пытается использовать сайт.

1 голос
/ 18 марта 2009

Я бы просто не делал этого на производственном сервере, шаги, которые я выполнял ранее:

  1. Арендуйте недорогой PHP-сервер или получите правильную настройку Dev-сервера, которая копирует производство

  2. Все динамические файлы копируются в DEV - они даже не нужны для производства

  3. Запустите скрипт HTMLizer - не спите, просто запишите его

  4. Проверьте выход, а затем RSYNC это на работающий сервер - резервное копирование действующего каталога, как вы это делаете, чтобы вы могли безопасно вернуться к

Как бы то ни было, с тех пор как Caching / Memcaching достигли скорости, мне вообще не пришлось этого делать - используйте Zend Framework и Zend Cache, и у вас в основном есть динамический эквивалент того, что вам нужно делать автоматически.

0 голосов
/ 23 марта 2009

Исходя из задачи, я не думаю, что она вам поможет.

Сон действительно будет полезен, только если вы постоянно зацикливаетесь и ожидаете пользовательского ввода или сигнала запуска.

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

Некоторые из приведенных выше постеров могут помочь вам в оптимизации кода.

0 голосов
/ 18 марта 2009

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

Короче говоря: да, это поможет.

0 голосов
/ 18 марта 2009

Я думаю, что это хорошая идея. Сон означает повторное сравнение тиков, пока не наступит период. Накладные расходы на ЦП в режиме ожидания должны быть ниже.

...