私のメモリ使用量は時間の経過とともに増加し、Django の再起動はユーザーにとって親切ではありません。
メモリ使用量のプロファイルを作成する方法がわかりませんが、測定を開始する方法に関するいくつかのヒントが役立ちます。
大きな利益を生み出すことができるいくつかの簡単なステップがあると感じています. 「debug」が「False」に設定されていることを確認することは、明らかに重要です。
誰でも他の人を提案できますか?トラフィックの少ないサイトでキャッシングを行うと、どの程度改善されるでしょうか?
この場合、mod_python を使用して Apache 2.x で実行しています。mod_wsgi の方が少しスリムだと聞いたことがありますが、大幅な改善が見込めない限り、この段階で切り替えるのは難しいでしょう。
編集:これまでのヒントをありがとう。メモリを使い果たしているものを発見する方法はありますか? Python メモリ プロファイリングのガイドはありますか?
また、前述のように、mod_wsgi への切り替えを難しくする要因がいくつかあるため、その方向に進む前に、期待できる利点を把握しておきたいと思います。
編集:カールは、読む価値のあるもう少し詳細な返信をここに投稿しました: Django Deployment: Cutting Apache's Overhead
編集: Graham Dumpleton の記事は、MPM および mod_wsgi 関連のもので私が見つけた最高のものです。ただし、アプリ自体のメモリ使用量のデバッグに関する情報を誰も提供できなかったことにかなり失望しています。
最終編集: Webfaction とこれについて話し合って、Apache の再コンパイルを支援できるかどうかを確認しました。これが問題に関する彼らの言葉です。
「MPM Worker + mod_wsgi セットアップに切り替えることで多くのメリットが得られるとは本当に思いません。約 20MB 節約できると推定していますが、おそらくそれ以上ではないでしょう。」
そう!これにより、元の質問に戻ります (これについてはまだよくわかっていません)。問題がどこにあるかを特定するにはどうすればよいでしょうか。どこを最適化する必要があるかを確認するためにテストせずに最適化しないというのはよく知られている格言ですが、Python のメモリ使用量を測定する方法に関するチュートリアルはほとんどなく、Django に固有のものはまったくありません。
みんなの助けに感謝しますが、この質問はまだ開いていると思います!
別の最終編集;-)
これを django-users リストで質問したところ、非常に役立つ回答が得られました
正直、今までで最後の更新です!
これは発売されたばかり。まだ最良の解決策かもしれません:Pymplerを使用したDjangoオブジェクトのサイズとメモリ使用量のプロファイリング