nginx+gunicornを使用してdjangoアプリをデプロイしようとしています。
私の問題
gunicornは、アップロードされたファイルをローカルファイルシステムにコピーするのに多くの時間/ proc/memを要します。
- 時間:150Mbファイルをコピーするのに35秒
- CPU:> 95%
- メモリ:50Mb
構成:
- nginxはuploadprogressモジュールを使用するように構成されており、プログレスバーは正常に機能します。
- gunicornはソケットファイルにバインドされています(tcpソケットで試してみても何も変更されません)
- django 1.4:このファイル(FileField)には何もしませんが、ローカルFSにコピーします
私が試したこと:
ポート8050で単独でgunicornを実行
- =>プログレスバーなし(もちろん、nginxなのでこれをどのように与えるか)
- =>guncirornは同じ時間/mem/procを取ります
- =>転送にはnginxよりも時間がかかりますが、ファイナライズは高速です:
- nginx + gunicorn:転送:4秒、応答生成:30秒
- gunicorn:転送:30秒、応答生成:4秒/
- => POSTで、POSTを気にしないビューにファイルを送信する場合は、少し時間がかかりますが、25秒以上かかります
ファイルをdjangoアプリに転送するように依頼すると、gunicornは弱いようです。
gunicorn cmd行(設定ファイルなし)
gunicorn_django --user = www-data --group = www-data --workers = 2 --bind 192.9.201.3:8050 -t 90 --name = TheName.domain.ltd