ImageMagick内存占用过高被杀掉-阿里云开发者社区

开发者社区> 开发者小助手-bz> 正文

ImageMagick内存占用过高被杀掉

简介: 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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8523 0
如何在生产环境排查 Rust 内存占用过高问题"
虽然 Rust 已经帮我们避免掉了内存泄漏的问题,但是内存占用过高的问题,我想不少在生产长期运行的程序还是会有非常大的概率出现的。
31 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
10940 0
Linux buffer/cache内存占用过高
Linux内核会在内存将要耗尽的时候,触发内存回收的工作,以便释放出内存给急需内存的进程使用。一般情况下,这个操作中主要的内存释放都来自于对buffer/cache的释放。尤其是被使用更多的cache空间。
1390 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10362 0
分析阿里云 ECS 出现内存占用过高原因
本文主要通过脚本的方式收集和分析 ECS 占用内容过高的原因
2756 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11405 0
1569
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载