2017-07-14 31 views
0

私は、Postgres、Nginx、およびGunicornを搭載したデジタルオーシャン(512MBメモリ)のdjangoアプリケーションをUbuntu 16.04にインストールしています。アプリケーションの実行時に、より多くのメモリを消費します。私がページをナビゲートすると、トップコマンドでチェックしてもメモリを消費します。何が問題になるのか、また何が原因だろう。私は偽DEBUG =を設定していたsettings.pyDjangoアプリケーションがサーバー内のメモリを消費しています

Gunicorn

[Unit] 
Description=veeyar daemon 
After=network.target 

[Service] 
User=root 
Group=www-data 
WorkingDirectory=/home/webapps/myproject/ 
ExecStart=/home/webapps/myproject/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/webapps/myproject/myproject.sock myproject.wsgi:application 

[Install] 
WantedBy=multi-user.target 

nginxの

server { 
    listen 9090; 
    location = /favicon.ico { access_log off; log_not_found off; } 
    location ^/static/ { 
     root /home/webapps/myproject/staticfiles; 
    } 

    location/{ 
     include proxy_params; 
     proxy_pass http://unix:/home/webapps/myproject/myproject.sock; 
    } 
} 

私はグーグルで試してみましたが、私は正しく理解できません。なぜ起こっているのですか、何も見逃しました。あなたはこの問題を解決するために私を助けてくれますか?これは私のために非常に偉大なものになるでしょう。前もって感謝します。

+0

あなたの設定は上手く見えますが、長時間の実行/コンピューティングタスクはありますか? –

+0

@OrDuanご返信ありがとうございます。いいえ、長時間実行/コンピューティングのタスクはありません。しかし、異なるテーブルから約14000のレコードを記録しています。 –

+0

あなたはメモリリークがありますが、コードなしでどこに言い聞かうのは難しいです。グローバルであるかインポートされているため、コール上で永続する変数を変更するかどうかを確認します。 –

答えて

1

Djangoのパフォーマンスのために、thisポストをお勧めします.Djangoの膨大なメモリの主な理由の1つは、イテレータの代わりにリストを使用しているからです。

よろしくお願いいたします。

+0

これはお勧めです。ありがとう –

1

Django docsはアプリケーションの最適化について何を確認してください。あなたのコードを見ずに何が関係するのかを言うのは難しいです。しかしそれは良い出発点です。

大きいを反復している場合、QuerySet.iterator()を使用すると、クエリセット全体がキャッシュされなくなります。

+0

ありがとうございました。あなたの返事をありがとうございます。QuerySet.iterator()、どのような例であれ、私はどこでユーザーを教えてくださいか教えてください。 –

1

メモリ消費量を見ると、問題の内容や実際に問題があるかどうかは反映されません。 (同じボックスから実行されている他のアプリケーションにどれくらいのメモリが残っているか心配しない限り)。さもなければ、実際にアプリケーションのためにキャッシュが必要です。

私はあなたがページの読み込み時間(と使用されたメモリ)に焦点を当てるべきだと思います。各ページについて、常に大規模なクエリーセットを取得し、コードから反復/フィルタリングしていますか?クエリセットを再利用するか組み合わせることができるので、別のクエリを作成する必要はありませんか?これらは、インスタンスを開始するために必要なメモリではなく、アプリケーションをより多く使用しているときに問題を引き起こすものです。

+0

あなたの答えをありがとう、あなたの説明は意味をなさない。あなたの欲望を通り越してください。 –

関連する問題