Django w/Photologue:100%CPU用于图像大小调整请求(Python图像库)



我用Django创建了一个照片托管网站,该网站使用Photologue应用程序(依赖于Python Imaging Library)。当用户上传照片时,会为每个照片生成多张调整大小的照片(例如,小/中/大、缩略图等)。问题是,调整大小的过程消耗了100%的CPU,使得Django几乎无法处理同时的请求(一个数量级,甚至更慢)。除非我离这里很远,否则我似乎必须以某种方式限制CPU的使用。

我试过使用"cpulimit"命令来限制PID上CPU的使用百分比,看看这是否能解决问题,但似乎没有效果。我可以通过PIL以某种方式限制CPU使用吗?有没有我遗漏的方法?我的服务器是一个UbuntuEC2微层,所以缺乏RAM/CPU能力可能是个问题吗?似乎不太可能是问题所在,因为只有两个用户同时出现此问题。

更新:根据Andre的建议,我已经升级到Django 1.4.1,这使得开发服务器允许并发请求;然而,它仍然慢得令人难以忍受,因为PIL占用了CPU。

您可以使用最新的Pillow(通常调整大小的速度是原始PIL的7倍)甚至Pillow SIMD(最多快30倍)来加快速度

最新更新