ImageMagick内存占用过高被杀掉

执行命令

# convert -density 300 -quality 100 test.pdf out.png

已杀死

很郁闷

解决方式一

重新重新编译ImageMagick最新版,增加参数:–disable-openmp, 不使用多线程

查看版本

$ convert -version
Features:openMP

在页面查找下载地址:

https://www.imagemagick.org/script/install-source.php

我下载是版本是:ImageMagick-7.0.8-24

安装步骤

# Linux源码下载
wget https://imagemagick.org/download/ImageMagick.tar.gz

# 解压
tar -xvzf ImageMagick.tar.gz

# 新建安装文件路径
mkdir ImageMagick-7.0.8

# 进入源码
cd ImageMagick-7.0.8-24

# 设置
./configure  --prefix=/home/ImageMagick-7.0.8 --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-openmp

# 编译安装
make & make install

# 添加软链接
ln -s /home/ImageMagick-7.0.8/bin/convert /usr/bin/convert

再次查看版本

# convert -version

Version: ImageMagick 7.0.8-23 Q16 x86_64 2019-01-07 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI
Delegates (built-in): jng jpeg lzma png xml zlib

不过好像没啥用,还是会出现已杀死的提示

参考:

ImageMagick 解决多线程(openMP)运行时导致CPU暴增到100%的方法

解决方式二

设置运行参数设置运行参数

# convert -limit memory 2mb -limit map 2mb -density 300 -quality 100 test.pdf out.png

这个方式基本可以解决问题,缺点就是速度较慢,和原先比较耗时*3

参考:

https://github.com/ImageMagick/ImageMagick/issues/327

上一篇:linux查看进程占用cpu、内存、io信息


下一篇:【转】超宽的banner条自适应浏览器大小始终居中的方法