Попробуйте установить и использовать "cpulimit". Я думаю, что пагубный эффект, который оказывают такие процессы (конвертирование / пакетные операции с изображениями), более вероятен из-за загрузки процессора, чем из-за ввода-вывода, по крайней мере, это мое впечатление. Я не уверен насчет оперативной памяти; Я на самом деле не уверен, что convert будет загружать все в оперативную память одновременно. Например, даже если вы преобразуете PDF с помощью imagemagick, он сначала будет использовать gs и извлекать страницу за страницей, а затем преобразует страницы PGN в / tmp в любую спецификацию и формат, которые вы указали в imagimagick / convert (но с другой стороны, это "наоборот", извлечение изображений из PDF, а не создание PDF, так что я не знаю).
У меня сложилось впечатление, что cpulimit более эффективен для длительных процессов или "эндогенных" пакетных процессов данного процесса (как и любой другой образ imagemagick), но он не работает так же хорошо, как с чем-то, что неоднократно вызывается в цикле bash, для пример (если, возможно, это не скрипт, а cpulimit - проблема ограничения использования CPU этим скриптом). Чтобы уменьшить нагрузку на процессор многократно запущенных процессов, я думаю, что лучший способ - это добавить некоторую произвольную задержку (бездействие) в цикле (это может быть как-то адаптивно, например, модулировать время ожидания с помощью некоторого числа, которое вы получаете из чего-то вроде "top" или возможно, желательно какой-то другой, менее интенсивно использующий процессор (что-то в /proc /stat?), показывающее использование процессора).