为什么这个请求要花费10倍的时间?

时间:2013-01-27 22:33:18

标签: ruby-on-rails performance file-upload paperclip rmagick

我正在试验我的MacOS上的Rails应用程序的上传操作和VPS上下文。在我的MacOS上,我看到:

Completed 200 OK in 462ms (Views: 0.2ms | ActiveRecord: 19.4ms)

然而,在VPS上,我得到了:

Completed 200 OK in 21762ms (Views: 0.1ms | ActiveRecord: 29.0ms)

Rails操作只是使用paperclip保存文件,使用rmagick进行处理如下:


Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox1.png[0]'
Command :: identify -format %m '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox1.png[0]'
Command :: identify -format %m '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox1.png[0]'
Command :: convert '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox1.png[0]' -auto-orient -resize "100x" -crop "100x100+0+0" +repage '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox120130127-3196-16s5ce0'
Command :: file -b --mime '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox120130127-3196-16s5ce0'
Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox1.png[0]'
Command :: identify -format %m '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox1.png[0]'
Command :: identify -format %m '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox1.png[0]'
Command :: convert '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox1.png[0]' -auto-orient -resize "50x" -crop "50x38+0+6" +repage '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox120130127-3196-1n2s0ck'
Command :: file -b --mime '/var/folders/dp/d61_ggqs0zvg9dcnybvfjgb40000gn/T/Bildschirmfoto 2013-01-27 um 16.39.0020130127-3196-8zjox120130127-3196-1n2s0ck'

发生了什么事?

1 个答案:

答案 0 :(得分:1)

如果没有更多信息,就无法给出明确答案,但是:

  1. 当您在本地测试上传操作时,传输文件所花费的时间将为~0。当您尝试使用实际服务器时,将花费一些时间来传输数据(多长时间取决于您的Internet连接速度)。 Chrome中的开发者工具可以向您显示这需要花费多少时间。

  2. 我不知道您使用哪个提供商进行托管,但过去我发现S3(对于一个)与我的开发机器相比,性能非常低。 (不过10倍的差异相当极端。)

  3. 您是否尝试过使用ImageMagick从命令行运行一些图像大小调整命令? (顺便说一下,我相信Paperclip使用shell命令调用ImageMagick,而不是通过RMagick。)尝试一下,看看它是否异常缓慢。

  4. 对操作进行概要分析,并确保问题不是由应用程序中的其他代码引起的。

  5. 如果问题确实来自ImageMagick,请检查您在本地和VPS上安装的版本。