增加 imagemagick 内存/磁盘限制

use*_*001 2 imagemagick

我发现我无法将 imagemagick 的内存/地图/磁盘限制增加到其当前值以上:

$ identify -list resource
Resource limits:
  Width: 16KP
  Height: 16KP
  Area: 128MP
  Memory: 256MiB
  Map: 512MiB
  Disk: 1GiB
  File: 768
  Thread: 4
  Throttle: 0
  Time: unlimited
Run Code Online (Sandbox Code Playgroud)

虽然我可以减少上述值的限制,但我不能增加它们:

$ identify -limit memory 128MiB -list resource | grep Mem
  Memory: 128MiB
$ identify -limit memory 512MiB -list resource | grep Mem
  Memory: 256MiB
$ MAGICK_DISK_LIMIT=0.2GiB identify -list resource | grep Disk
  Disk: 204.8MiB
$ MAGICK_DISK_LIMIT=2GiB identify -list resource | grep Disk
  Disk: 1GiB
Run Code Online (Sandbox Code Playgroud)

如何增加超过默认值?我的系统有 8 GB 的 RAM、8 GB 的交换空间,并且至少在某些分区上有数百 GB 的可用磁盘空间。

meu*_*euh 5

页面解释了如何在文件中指定限制,该文件policy.xml在多个目录中查找:

$MAGICK_CONFIGURE_PATH
$PREFIX/etc/ImageMagick-7 
$PREFIX/share/ImageMagick-7 
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick
Run Code Online (Sandbox Code Playgroud)

哪里$PREFIX取决于您的发行版,可能是/usr/local. 将 7 替换为您发布的主要版本,在identify --version. 我的分布式策略文件/etc/ImageMagick-6/policy.xml已注释掉所有值(使用 xml <!-- -->),例如

<!-- <policy domain="resource" name="memory" value="2GiB"/> -->
Run Code Online (Sandbox Code Playgroud)

因此,例如,对于 4G ram,内存限制为 3.7499GiB。