Написал для себя простенький php-скрипт, который должен брать фотки в одном месте, сжимать и класть в другое. Разом будут обрабатываться до 1000 фотографий.
Мой vds-провайдер указал, что излишняя нагрузка на процессор или дисковую систему чревата отключением. Теперь выяснилось, что в вопросах понимания базовой архитектуры я сильно проседаю.
Вот несколько вопросов по этой теме:
1) А можно ли как-либо контролировать работу скрипта?.. Приложение будет запускаться по крону и мне хотелось бы установить ему предельную нагрузку на процессор - 25%. Такое реально или сказки?..
2) Или же этот вопрос как-то решается через прерывания работы скрипта?.. Например, sleep после каких-либо трудоемких ресурсов.
3) И вот какая ситуация мне не ясна - сегодня запускал на vds долгий unzip архива. Нагрузка на процессор - относительно стабильная в 50%. Потом запустил свой скрипт - работал 255 сек и загрузил процессор на 98%. Тут уже вопрос об общем понимании - почему один процесс грузит на 50%, другой может на 98%, третий может спокойно работать на малых нагрузках...Все ли зависит от того, сколько приходится совершать операций?..
Во-первых, переезжайте на нормальный VPS. Зачем вам хостер, который не предоставляет вам обещанных ресурсов?
VPS хостер должен предоставлять все ресурсы, которые пообещал.
1) посмотрите в cgroup
2) так тоже можно. Но зачем?
3) какое-то узкое место есть всегда. Если есть полная утилизация CPU - значит в него и упёрлись. Если CPU утилизируется не полностью - значит упёрлись во что-то другое. В ввод-вывод (диск, сеть), память или ещё во что-нибудь. Распаковка довольно простого zip'а - скорей всего в диск упёрлась.
Так у вас VDS или хостинг? На VDS обычно вы можете полностью использовать ресурсы сервера хоть на 100%
В случае хостинга надо подбирать нагрузку по верхнему лимиту путём уменьшения разовой пачки и запуску скрипта по cron для равномерного распределение и sleep() внутри цикла можно ставить.
Что за VDS у вас такой даже интересно стало, шепните мне хостинг-провайдера в комментах.
Хайбулла Мусаев: Судя по ответу они имели ввиду исключительные случаи когда у вас на диске 5 миллионов файлов. Грузите смело на 100%. Я тоже спрашивал, мне сказали да можете использовать на 100% всё в рамках правил (типа спам не рассылать)
Тут всё зависит от того, как написан ваш скрипт с точки зрения оптимальности. Может стоит использовать прикладные утилиты для пакетной обработки изображений, например imagemagick?
не знал, что у imagemagick есть утилита пакетной обработки файлов, посмотрю на нее, спасибо...в данный момент использую либу wideimage, там, вроде, как раз imagemagick...
Хайбулла Мусаев: "утилита пакетной обработки файлов" под Linux называется find.
На кой черт у вас вообще используется РНР для столь тривиальной задачи - вот вопрос.