我的主要问题是:是否wgMaxShellMemory限制所有进程的shell任务使用的总内存,如ImageMagick缩略图创build? 还是这是一个进程的限制? 这个设置的文档看起来很模糊。
我有一个在共享主机上使用太多内存的wiki。 转换上传的图片时,我使用太多内存将罪魁祸首缩小到ImageMagick。 我已经减less了php.ini中的最大上传大小,这将有所帮助,但我希望wgMaxShellMemory将作为ImageMagick和其他MediaWiki后台进程的内存使用总量的硬限制。
作为一个旁注,我也无法弄清楚图像转换是否是作业队列的一部分,从而允许wgJobRunRate减慢缩略图的创build。
首先,内存限制只适用于GNU / Linux,而不是Windows。
简短的回答:这是bash脚本的每个进程的限制,这可能(对于“它的子”系统是这样,而且这个限制没有多大用处),也适用于subprocess。 所以每个ImageMagick调用都有自己的限制。
图像的缩略图生成不是作业队列的一部分(像video这样的多媒体是另一回事)。
细节:
默认情况下,它是这样工作的:
ulimit -v设置内存限制(wgMaxShellMemory)。 bash的ulimit的手册页说'-v'是“可用于shell的虚拟内存的最大数量,以及在某些系统上可用的子虚拟内存”。
注:有一个选项可以使用cgroups ,但默认情况下是closures的。