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

Плохие скрипты php, останавливающие сервер

У меня довольно стандартная установка LAMP на моем Debian VPS. VPS имеет 512 МБ оперативной памяти, и я выделил 128 МБ в моем php.ini для php.

Если я создаю скрипт с бесконечным циклом в нем, VPS практически останавливается (SSH перестает реагировать и т. Д.)

Мне было интересно, есть ли способ снизить приоритет PHP или что-то в этом роде, чтобы плохие скрипты не могли слишком сильно мешать серверу.

Спасибо, Джон.

Использовать nice или renice в процессе веб-сервера, если PHP работает как модуль (например, mod_php). Это позволит PHP использовать больше ресурсов, когда они доступны, но будет отдавать приоритет другим процессам, которым они могут понадобиться.

Добавлю, что это только для Linux и, возможно, UNIX.

На самом деле у вас есть два варианта, в зависимости от того, как вы это запустите. Одно из решений - ограничить время выполнения сценариев PHP, то есть вы можете настроить автоматическое завершение сценария PHP в зависимости от его фактического времени выполнения.

Если вы запускаете это с веб-сервера (Apache, Lighttpd и т. Д.), Вы можете использовать max_execution_time параметр. По умолчанию это 30 секунд. Если вы запускаете это из CLI, используйте set_time_limit функция.

Другое решение - использовать что-то вроде monit для отслеживания загрузки и использования ЦП процесса PHP и прекращения его работы, если он достигает заданного уровня.

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