有台旧机器上跑了个裁图的程序ImageMagick,迁移到新机器之后居然跑不动,情况如下:
新机器: DELL R710 操作系统版本:6.2 ImageMagick版本:6.5.4 convert占用cpu很高 文件系统使用了ext4
旧机器: HP DL360G5 操作系统版本:5.2 ImageMagick版本:6.0.1 convert占用cpu很低 文件系统ext3
新机器的负载情况:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7535 apache 20 0 1174m 3260 1960 D 233.8 0.0 0:01.21 /usr/local/bin/convert -strip -resize 95x120> -quality 9
7552 apache 20 0 1110m 3188 1956 R 230.0 0.0 0:01.19 /usr/local/bin/convert -strip -resize 100x75> -quality 9
7584 apache 20 0 1110m 3168 1932 D 183.6 0.0 0:00.95 /usr/local/bin/convert -strip -resize 100x75> -quality 9
7583 apache 20 0 1110m 3176 1936 D 172.0 0.0 0:00.89 /usr/local/bin/convert -strip -resize 100x75> -quality 9
7600 apache 20 0 1174m 3284 1960 D 125.6 0.0 0:00.65 /usr/local/bin/convert -strip -resize 95x120> -quality 9
7632 apache 20 0 1175m 10m 1932 D 121.8 0.0 0:00.63 /usr/local/bin/convert -strip -resize 400x300> -quality
7601 apache 20 0 733m 9.8m 1956 D 81.2 0.0 0:00.42 /usr/local/bin/convert -strip -resize 180x120> -quality 9
刚开始怀疑版本问题,安装最新版ImageMagick,效果也不明显,cpu占用还是挺高
后来经过strace跟踪处理过程,发现新旧版本之间的差异,就是多线程处理。
于是,发现问题在于新版本的ImageMagick启用了OpenMP,默认开启多线程处理,导致cpu占用过高。
解决办法:
重新编译ImageMagick最新版,增加了参数: --disable-openmp,负载就降下来了。
编译参数:
./configure --prefix=/usr/local/ImageMagick-6.7.9-7 --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-openmp
另外,在此过程中,也有人推荐改用GraphicsMagick:http://www.graphicsmagick.org/
因为问题已经解决,就没有尝试,有兴趣的话可以去试试。
附GraphicsMagick编译参数,仅供参考
./configure --prefix=/usr/local/GraphicsMagick-1.3.16 --enable-libtool-verbose --with-included-ltdl --enable-shared --disable-static --with-modules --with-frozenpaths --without-perl --without-magick-plus-plus --with-quantum-depth=16
还有个重要的参数,根据情况选择是否增加吧,
--enable-sybol-prefix
避免和系统中已有的 ImageMagick 的冲突
分享到:
相关推荐
ImageMagick命令使用文档
ImageMagick 可以用命令行将pdf高质量转成jpg
该模块是通过npm发布的,请使用以下命令安装最新发布的版本: npm install --save metalsmith-convert 依存关系 该模块使用node-imagemagick-native。 您必须能够编译c ++代码以安装imagemagick-native。 提供了...
GF3 SAR图像处理软件PolSAR,安装需要PolSARpro6.0安装包,包括Google Earth安装包、ESA-SNAP安装包、GIMP安装包、ImageMagick安装包,以及Convert.exe程序,PolSARproCheckConfigWin64.exe(用来检验PolSAR是否安装...
ImageMagick
ImageMagick-7.0.8-56-Q16-x64-dll.rar是ImageMagick7.0.8的windows 64位操作系统的安装程序,解压执行即可安装。 使用ImageMagick的创建,编辑,撰写,或转换位图图像。它可以读取和写入各种格式(超过200种)的...
ImageMagick
Skeptick - 一个通用的DSL用于构建和运行ImageMagick命令
node-imagemagick-native, NodeJS的ImageMagick绑定的Magick node-imagemagick-native/of 节点的Magick 绑定的 。功能C/C Magick 库的本机绑定异步。同步。流和承诺 API支持 convert,identify,composite 和其他实
什么是ImageMagick? ImageMagick是一个功能强大的开源图形处理软件,可以用来读、写和处理超过90种的图片文件,包括流行的JPEG、GIF、 PNG、PDF以及PhotoCD等格式。使用它可以对图片进行切割、旋转、组合等多种特效的...
ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。它遵守GPL许可协议。它可以运行于大多数的操作系统。ImageMagick的大多数功能的使用都来源于命令行工具。它可以读取、转换、写入多种格式的...
java程序调用imagemagick安装程序
如果提示 convert 命令找不到, 需要安装ImageMagick-6.9.4-9.tar.bz2
ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, DPX, ...