Попробуйте ограничить кеш пикселей, используемый convert
, например, до 1 ГиБ:
convert 0001.miff ... 2000.miff -limit memory 1GiB -limit map 1GiB -compress jpeg -quality 80 out.pdf
Надеюсь, это заставит ImageMagic регулярно выгружать уже обработанные данные на диск вместо того, чтобы пытаться уместить более 2 ГиБ в буферах ОЗУ.
Кстати, объем виртуальной памяти, доступной одному процессу в 32-разрядной версии Linux, определяется настройкой VMSPLIT
конфигурации ядра. Это может быть 2G/2G (2 ГБ для ядра + 2 ГБ для пользователя) или 1G/3G (1 ГБ для ядра + 3 ГБ для пользователя). В работающей системе этот параметр можно найти через
zcat /proc/config.gz | grep VMSPLIT
. В некоторых системах конфигурация ядра вместо этого хранится в /boot/config-$(uname -r)
.