У меня есть веб-сервер, где изображения собираются и преобразовываются в gifs. Я использую программу преобразования из изображения-magick приблизительно в каждых 1 000 изображений. Процесс, в то время как это работает полностью, наводняет мой сервер.
Я все еще только хочу преобразовать 1000 + изображения в gif. Как я могу сохранить системные ресурсы требуемыми convert
от помещения слишком большой системной нагрузки на моем сервере?
Если простой ответ, который увеличит время, которое требуется для преобразования изображений, будет достаточен, легкий ответ на запуститься convert
использование nice
, например:
nice -n 19 convert ...
(Где... остальная часть Вашей текущей команды преобразования) уменьшит приоритет программы преобразования от 20 (значение по умолчанию) к 39
, точный эффект устанавливания конкретного значения правильности для процесса зависит от деталей того, как планировщик разработан на той реализации Unix/Linux. Планировщику конкретной операционной системы также встроят различную эвристику в него (например, способствовать процессам, которые являются главным образом I/O-bound по процессам, которые являются зависящими от ЦП).
, Поскольку простой пример, когда два в других отношениях идентичных зависящих от ЦП процесса работают одновременно в системе Linux единственного ЦП, каждой доле процессорного времени, будет пропорционален 20 в€’ p, где p является приоритетом процесса. Таким образом процесс, выполненный с хорошими +15, получит 25% процессорного времени, выделенного процессу нормального приоритета: (20 в€’ 15) / (20 в€’ 0) = 0.25. [2] На BSD 4.x планировщик, с другой стороны, отношение в том же примере - приблизительно десять одному.
Источники:
man nice
Imagemagick создал в методе для управления использованием ресурсов. Можно ограничить ресурсы, доступные imagemagick в файле policy.xml. По умолчанию на Ubuntu это, вероятно, расположено по телефону /etc/ImageMagick-6/policy.xml
существует несколько опций играть с, например, можно установить предел для потоков к числу, меньшему, чем количество ядер процессора, включить регулировку ЦП и/или ограничить использование памяти согласно тому, что доступно на сервере.
можно просмотреть текущие настройки с identify -list resource
команда.
Если это ест ввод-вывод, и ЦП затем работает, это с ионизируется и хороший. Обратите внимание, что ионизируют только работы, если Вы используете блок CFQ планировщик ввода-вывода. Этот планировщик ввода-вывода может быть установлен на блочном устройстве (например,/dev/sda) использование:
echo "cfq" | sudo tee /sys/block/sda/queue/scheduler
и затем выполненный Ваше использование процесса:
ionice -c 2 -n 7 nice -n 19 <your command>
.. это выполнит процесс с максимальными усилиями правильность ввода-вывода на самом низком уровне 7 с самым низким уровнем правильности ЦП.