使用PHP函数imagecreatefromjpeg()
,imagecrop()
,imagecopyresampled()
等裁剪和调整图像大小时,会收到有关内存使用率高的通知。
如果我将这个裁剪模块实现到CMS中,并说有50个人同时调用裁剪功能:内存使用量是否会乘以50,从而使服务器内存资源过载?
如果是,那么什么是排队请求或防止过载的好方法?
答案 0 :(得分:0)
虽然这可能不是您问题的直接答案,但根据我的经验,最好在另一台服务器上处理图像处理,因为您不希望单个用户使用一些图像来杀死整个网络服务器。
如果您在不同的服务器上处理图像并且它已经死亡,那么最糟糕的情况是图像将返回404,但网络服务器本身将保持正常运行。
无论如何,我肯定会推荐使用像ImageMagick这样的库。它更容易使用,我相信你可以设置不能超过的内存限制。
到目前为止,我发现的最佳图像处理方法是AWS Lambda。您可以轻松编写无服务器nodeJS脚本,该脚本可下载您的映像,对其执行任何修改并将其上传回您的服务器。除非您每天需要处理数千张图像,否则几乎可以免费运行它,它可以同时处理多达100个调用(它一次最多可以启动100个服务器)所以理论上它可以比你的快几百倍必须排队你的请求。