У меня есть веб-сервер, где изображения собираются и преобразуются в gif. Я использую программу конвертации из изображения-магии примерно в 1000 изображений. Процесс во время работы полностью заправляет мой сервер.
Я все еще хочу конвертировать 1000+ изображений в gif. Как я могу сохранить системные ресурсы, требуемые convert, от слишком большой загрузки системы на моем сервере?
Imagemagick имеет встроенный метод управления использованием ресурсов. Вы можете ограничить ресурсы, доступные для imagemagick в файле policy.xml. По умолчанию на Ubuntu он, вероятно, находится в /etc/ImageMagick-6/policy.xml
С несколькими вариантами воспроизведения, например, вы можете установить ограничение на потоки на число меньше, чем количество ваших ядер процессора, включить дросселирование процессора и / или ограничить использование памяти в соответствии с тем, что доступно на вашем сервере.
Вы можете просмотреть текущие настройки с помощью команды identify -list resource.
Если он питается I / O и CPU, тогда запустите его с помощью ионита и славного. Обратите внимание, что ионизация работает только в том случае, если вы используете планировщик ввода-вывода блока CFQ. Этот планировщик ввода-вывода можно установить на блочном устройстве (например, / dev / sda), используя:
echo "cfq" | sudo tee /sys/block/sda/queue/scheduler
, а затем запустить ваш процесс, используя:
ionice -c 2 -n 7 nice -n 19 <your command>
..Это будет запускать процесс с наилучшей практичностью ввода / вывода на самом низком уровне 7 с самым низким уровнем владения процессором.