【发布时间】:2021-02-27 15:31:01
【问题描述】:
在我的本地机器上,我编写了一个多次使用 ImageMagick 转换的脚本。最常用的命令之一是:
convert -size 4200x5100 xc:blue sth.jpg
。在我的本地机器上,它运行大约 1s,这没关系。它不会使用太多资源。
当我将程序部署到 2 台不同的服务器时,它们开始非常强大地使用磁盘,并且相同的运行大约需要 9 秒而不是 1 秒。
我发现它在服务器上创建了一个文件(文件名类似于:/tmp/magick-30416RF1uGkxsk3ms),其大小正好为 250.000.000 字节。
在本地计算机上,不会创建此文件。
版本是: 本地机器:笔记本电脑,Ubuntu 16.04,联想 t440。 IM/转换版本:6.8.9-9
Server1:debian 10.8,一周全新安装,vps,IM/转换版本:6.9.10-23
Server2:物理机,debian 9.6,IM/转换版本:6.9.7-4
.
我的问题是什么会导致本地机器和服务器之间的这种巨大差异?如何防止 ImageMagick 创建这个怪物大的临时文件?
还是6.9版本的新功能??
【问题讨论】:
-
我发现,这应该是一些与内存相关的问题。如果我创建分辨率较低的文件,它不会使用磁盘...。但是,它仍然没有解决我的问题。
-
我认为有一个选项。这不是我第一次看到人们遇到这样的问题(但我不记得解决方案了)。您可能应该查看我们的姐妹网站(查看右上角的图标)。您的问题是关于程序而不是编程(可能是超级用户,或 unix&linux,或 Ubuntu 姐妹网站)
-
如果这是您的服务器而不是共享服务器,那么您可以使用 policy.xml 文件更改您的资源(内存分配)等。您可能允许的内存有限,因此 ImageMagick 将使用磁盘资源来代替大图像。
-
您可以尝试在各种机器上运行
identify -version,看看它们是否报告了 Q8 或 Q16,它们给出了内存中每个样本的位数。 -
所有 3 台服务器上都是 Q16。
标签: ubuntu debian imagemagick imagemagick-convert