как помешать процессу затоплять сервер

У меня есть веб-сервер, где изображения собираются и преобразовываются в gifs. Я использую программу преобразования из изображения-magick приблизительно в каждых 1 000 изображений. Процесс, в то время как это работает полностью, наводняет мой сервер.

Я все еще только хочу преобразовать 1000 + изображения в gif. Как я могу сохранить системные ресурсы требуемыми convert от помещения слишком большой системной нагрузки на моем сервере?

1
задан 20 March 2017 в 23:42

3 ответа

Если простой ответ, который увеличит время, которое требуется для преобразования изображений, будет достаточен, легкий ответ на запуститься 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

https://en.wikipedia.org/wiki/Nice _ (Unix)

2
ответ дан 3 December 2019 в 06:38

Imagemagick создал в методе для управления использованием ресурсов. Можно ограничить ресурсы, доступные imagemagick в файле policy.xml. По умолчанию на Ubuntu это, вероятно, расположено по телефону /etc/ImageMagick-6/policy.xml

существует несколько опций играть с, например, можно установить предел для потоков к числу, меньшему, чем количество ядер процессора, включить регулировку ЦП и/или ограничить использование памяти согласно тому, что доступно на сервере.

можно просмотреть текущие настройки с identify -list resource команда.

2
ответ дан 3 December 2019 в 06:38

Если это ест ввод-вывод, и ЦП затем работает, это с ионизируется и хороший. Обратите внимание, что ионизируют только работы, если Вы используете блок CFQ планировщик ввода-вывода. Этот планировщик ввода-вывода может быть установлен на блочном устройстве (например,/dev/sda) использование:

echo "cfq" | sudo tee /sys/block/sda/queue/scheduler

и затем выполненный Ваше использование процесса:

ionice -c 2 -n 7 nice -n 19 <your command>

.. это выполнит процесс с максимальными усилиями правильность ввода-вывода на самом низком уровне 7 с самым низким уровнем правильности ЦП.

1
ответ дан 3 December 2019 в 06:38

Другие вопросы по тегам:

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