web-dev-qa-db-ja.com

Djangoメモリリーク:考えられる原因は?

私はDjangoアプリケーションを持っていて、メモリリークが頻繁に発生しています。

私はメモリを過負荷にする可能性のある大きなデータを使用していません。実際、アプリケーションはメモリを段階的に「食べます」(1週間でメモリは約70 MBから4GBになります)。そのため、ガベージコレクタに何かが不足していると思われます。でもわからない。また、この増分はリクエストの数に依存しないようです。

DEBUG=True、開いているファイルを残すなどの明らかなことは、ここでは適用されません。

uWSGI 2.0.3(+ nginx)とDjango 1.4.5を使用しています

メモリが特定の制限を超えたときにサーバーを再起動するようにwsgiを設定することもできますが、それは実際には解決策ではないため、そうしたくありません。

ガベージコレクターが「正しく機能しない」というよく知られた状況はありますか?それはいくつかのコード例を提供できますか?

これを引き起こす可能性のあるuWSGI + Djangoの構成はありますか?

17
trinchet

探しているものが正確に見つかりませんでしたが(各プロジェクトは世界です!)、いくつかの手がかりとアドバイスに従って、問題を解決することができました。同様の問題に直面している場合に役立つ可能性のあるいくつかのリンクを共有します。

Djangoメモリリーク、パートIDjangoメモリリーク、パートIIPythonでのメモリリークの検索と修正最適化されたスクリプトubuntu 12.04のnginxとuwsgi (これはWEB2PY用ですが、uWSGIを介していくつかの「クラック」を提供します)および WSGIアプリケーションでのメモリリークのデバッグ

いくつかの便利なSO回答/質問: どのPythonメモリプロファイラーが推奨されますか?ワーキングメモリプロファイラーはありますか?) Python3の場合Pythonメモリリーク および Python:メモリリークデバッグ

27
trinchet