ruby-on-rails-3 – 上传回形针非常慢(独角兽)
坐在这里有一个简单的rails 3 app,我有一个简单的Gallery模型,每个画廊都有很多图像.使用回形针和以下选项扩展图像模型
has_attached_file :local,:styles => { :large => "800x800>",:medium => "300x300>",:thumb => "100x100#",:small => "60x60#" } 在我的galleries_controller中,我执行了以下操作以使用jQuery-File-Upload插件.从而json响应. def add_image gallery = Gallery.find params[:id] image = gallery.images.new({:local => params[:local]}) if image.save render :json => {:thumb => image.url(:thumb),:original => image.url} else render :json => { :result => 'error'} end end 对我来说,这是相当直接的.但问题来了.在Mongrel下的开发中,任何类型的上传都可以正常工作,大约500-1000ms /上传. 然而,当我将它推向生产时,我不断地让我的独角兽工作人员超时,当它发送图像时,一个文件需要30-55秒. 我上传的文件大小约为100k 我已经对我的VPS和我的开发计算机之间的带宽进行了一些测试,并且平均速度大约为77kbps,因此上传应该不是问题. 注意我还使用具有头像的用户模型的相同应用程序进行了非ajax文件上载测试. 任何人都遇到类似的问题(rails3,unicorn)文件上传? 解决方法
所以在挖掘之后,我设法确定在我的VPS上,ImageMagick中的OpenMP选项导致了非常慢的操作.所以我的第一次尝试是重建原生Ubuntu 10.04包,并添加了–disable-openmp标志.由于某种原因,这失败了,虽然我不确定为什么打包出来的openMP仍然有效.我现在的解决方案现在改为从Ubuntu 10.10向后移植ImageMagick.下面是我采取的步骤:
步骤1下载以下文件: > imagemagick_6.6.2.6-1ubuntu1.1.dsc 从here 第2步打开包装 $dpkg-source -x imagemagick_6.6.2.6-1ubuntu1.1.dsc 第3步编辑规则 $cd imagemagick-6.6.2.6 $vim debian/rules 将以下行添加到第25-39行的./configure语句中.我在第34行添加了我的. 34: --disable-openmp 第4步添加依赖项和构建(我需要这些依赖项) $sudo apt-get install liblqr-1-0-dev librsvg2-dev $dpkg-buildpackage -b 步骤5用旧的,用新的 $sudo apt-get remove --purge imagemagick $sudo dpkg -i libmagickcore3_6.6.2.6-1ubuntu1.1_amd64.deb $sudo dpkg -i libmagickwand3_6.6.2.6-1ubuntu1.1_amd64.deb $sudo dpkg -i imagemagick_6.6.2.6-1ubuntu1.1_amd64.deb 第6步再次进行快速图像转换 _before_ (with openmp) $time utilities/convert 'image.jpg' -resize "x60" -crop "60x60+10+0" +repage 'thumb' real 0m11.602s user 0m11.414s sys 0m0.069s _after_ $time utilities/convert 'image.jpg' -resize "x60" -crop "60x60+10+0" +repage 'thumb' real 0m0.077s user 0m0.058s sys 0m0.019s (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |