为什么CarrierWave和Rackspace Cloudfiles的上传速度如此之慢?

时间:2013-02-01 22:41:59

标签: ruby-on-rails carrierwave fog rackspace cloudfiles

我使用CarrierWave进行图片上传,使用Rackspace Cloudfiles作为商店,上传需要3-5秒(在制作中)。起初,我将它归因于我的图像处理器缓慢或笨拙,或者某种东西;所以,我从RMagick切换到了Vips ......没有明显的速度变化。

需要更多信息,我决定写一些New Relic仪器:

http://github.com/tehprofessor/newrelic-carrierwave

使用仪器后,New Relic报告每个请求的大部分(平均85%)用于:

::CarrierWave::Storage::Fog::File#store

#store方法被多次调用,有时第一种方法是缓慢的,有时是最后一种,有时是每种方法。平均而言,对#store的最快调用在大约234ms完成。

我目前正在制作5个版本;每个都在不到10ms的时间内完成(用于图像处理)。源文件介于100k和500k之间。

简而言之,这绝对是发布到Rackspace的东西。与图像库无关。

我的CarrierWave配置

CarrierWave.configure do |config|
    config.fog_credentials = {
        :provider           => 'Rackspace',
        :rackspace_username => 'SECRET_SAUCE',
        :rackspace_api_key  => 'CHEESEBURGER',
        :rackspace_servicenet => true
    }
    config.storage = :fog
end

我已经联系过Rackspace,他们建议使用Curl。 “试图”帮助我的支持代表发现使用Curl云文件一直很快。我发现这特别没有帮助,与我的New Relic仪器所暗示的形成鲜明对比。

此外,我使用的容器是公共容器,与我们的云服务器(VPS)位于同一数据中心。

在这一点上,我几乎不知道为什么这么慢;特别是因为我有servicenet设置,容器和服务器在同一个数据中心。如果有人有任何建议或想法,我很乐意听到他们......

也许我刚刚做了一些非常愚蠢的事情或错过了配置选项?非常感谢任何帮助!

更新:一年后,这仍然是一个问题;虽然没有那么糟糕 - 也许Rackspace改变了一些东西?

谢谢你, 塞弗

0 个答案:

没有答案