シンプルなRails3アプリを使ってここに座っています。このアプリでは、シンプルなギャラリーモデルがあり、各ギャラリーには多くの画像があります。画像モデルは、ペーパークリップと次のオプションで拡張されます
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
私にとって、これはかなり簡単です。しかし、ここに問題があります。雑種の下での開発では、あらゆる種類のアップロードが約500〜1000ms/アップロードで問題なく機能します。
ただし、本番環境にプッシュすると、ユニコーンワーカーのタイムアウトが常に発生し、画像が送信されると、1つのファイルに対して30〜55秒かかります。
私がアップロードするファイルのサイズは約10万です
私はVPSと開発用コンピューターの間の帯域幅をiprefでテストし、平均速度が約77kbpsになっているので、アップロードに問題はないはずです。
アバターを持つユーザーモデルで同じアプリを使用して、ajax以外のファイルのアップロードでもテストを行ったことに注意してください。開発=>693msで検出された302完了生産=>21618msで検出された302完了
(rails3、unicorn)ファイルのアップロードで同様の問題が発生した人はいますか?