ulimit 命令或其他内存/CPU 限制选项?

ulimit 命令或其他内存/CPU 限制选项?

我有一个由 ruby​​ on rails 应用程序运行的命令行进程,用于使用 ImageMagick 的“convert”命令将 PDF 转换为多个 PNG。问题是,当我运行该命令时,它会占用我 VPS 上的所有内存(512MB),并使许多其他功能几乎无用(Web 服务器、ssh 等)。

我的转换命令是这样的:

convert -density 288 ./document.pdf -resize 25% ./pages/page_%03d.png

我尝试使用 ulimit 将此进程可以消耗的内存限制为大约 15% 的内存,在我的 512MB VPS 上大约为 76,800 千字节。如果我使用 ulimit 运行上述命令(如下所示),该进程最初会达到峰值,没有限制,占用高达 80% 的内存,并由于延迟导致服务器的其他功能无法使用。一段时间后,该进程会降至 10% 以下(通常为 4-8% 的内存),但所有其他服务器的功能仍然很慢。

请注意,我关于该进程消耗了多少内存的数字来自于顶部。

bash -c 'ulimit -m 76800; convert -density 288 ./document.pdf -resize 25% ./pages/page_%03d.png'

有人知道如何执行该命令而不消耗所有内存吗?

谢谢!

答案1

相关内容