У меня есть процесс командной строки, который запускается моим приложением ruby on rails, чтобы использовать команду ImageMagick 'convert' для преобразования PDF-файла в несколько PNG. Проблема в том, что когда я запускаю команду, она занимает всю память на моем VPS (512 МБ) и делает многие другие функции почти бесполезными (веб-сервер, ssh и т. Д.).
Моя команда преобразования такова:
convert -density 288 ./document.pdf -resize 25% ./pages/page_%03d.png
Я попытался использовать ulimit, чтобы ограничить память, которую этот процесс может потреблять, примерно до 15% памяти, которая на моем 512 МБ VPS составляет примерно 76 800 кбайт. Если я запустил указанную выше команду с помощью ulimit, как показано ниже, процесс сначала начнет работать без ограничения, занимая до 80% памяти, и сделает другие функции сервера бесполезными из-за задержки. Через некоторое время процесс сокращается до менее 10% (обычно 4-8% памяти), но все остальные функции сервера все еще медленные.
Обратите внимание, мои цифры о том, сколько памяти потребляет процесс, идут сверху.
bash -c 'ulimit -m 76800; convert -density 288 ./document.pdf -resize 25% ./pages/page_%03d.png'
Есть ли у кого-нибудь идеи о том, как я могу выполнить эту команду, не занимая всю мою память?
Спасибо!