Можно ли контролировать нагрузку на процессор?

Здравствуйте, уважаемые разработчики!

Написал для себя простенький php-скрипт, который должен брать фотки в одном месте, сжимать и класть в другое. Разом будут обрабатываться до 1000 фотографий.

Мой vds-провайдер указал, что излишняя нагрузка на процессор или дисковую систему чревата отключением. Теперь выяснилось, что в вопросах понимания базовой архитектуры я сильно проседаю.

Вот несколько вопросов по этой теме:

1) А можно ли как-либо контролировать работу скрипта?.. Приложение будет запускаться по крону и мне хотелось бы установить ему предельную нагрузку на процессор - 25%. Такое реально или сказки?..

2) Или же этот вопрос как-то решается через прерывания работы скрипта?.. Например, sleep после каких-либо трудоемких ресурсов.

3) И вот какая ситуация мне не ясна - сегодня запускал на vds долгий unzip архива. Нагрузка на процессор - относительно стабильная в 50%. Потом запустил свой скрипт - работал 255 сек и загрузил процессор на 98%. Тут уже вопрос об общем понимании - почему один процесс грузит на 50%, другой может на 98%, третий может спокойно работать на малых нагрузках...Все ли зависит от того, сколько приходится совершать операций?..

Всех с пятницей :)
  • Вопрос задан
  • 518 просмотров
Пригласить эксперта
Ответы на вопрос 4
Melkij
@Melkij
PostgreSQL DBA
Во-первых, переезжайте на нормальный VPS. Зачем вам хостер, который не предоставляет вам обещанных ресурсов?
VPS хостер должен предоставлять все ресурсы, которые пообещал.

1) посмотрите в cgroup
2) так тоже можно. Но зачем?
3) какое-то узкое место есть всегда. Если есть полная утилизация CPU - значит в него и упёрлись. Если CPU утилизируется не полностью - значит упёрлись во что-то другое. В ввод-вывод (диск, сеть), память или ещё во что-нибудь. Распаковка довольно простого zip'а - скорей всего в диск упёрлась.
Ответ написан
Комментировать
Так у вас VDS или хостинг? На VDS обычно вы можете полностью использовать ресурсы сервера хоть на 100%
В случае хостинга надо подбирать нагрузку по верхнему лимиту путём уменьшения разовой пачки и запуску скрипта по cron для равномерного распределение и sleep() внутри цикла можно ставить.
Что за VDS у вас такой даже интересно стало, шепните мне хостинг-провайдера в комментах.
Ответ написан
@link_irk
Тут всё зависит от того, как написан ваш скрипт с точки зрения оптимальности. Может стоит использовать прикладные утилиты для пакетной обработки изображений, например imagemagick?
Ответ написан
sim3x
@sim3x
man nice
Но лучше сьекномить на паре завтраков и купить нормальное
serverbear.com/compare/lowendbox
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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