CentOS で WSGI を使用して Django 1.4 を実行しています。Apache はプリフォークですが、デーモン モードでは構成されていません。8 つの子プロセスが開始されます。子プロセスの 1 つ (要求を処理していたプロセス) の常駐メモリ サイズを 555 MB (100 MB から) にするデータベース クエリを実行しました。私のコードでは、pyodbc カーソルを使用して行をフェッチしています。データは、グローバル変数など、どこにも保存されていません。
JSON 応答は、シリアライズされたデータとともにサーバーに送り返されます。この時点で常駐メモリは 100 MB に戻ると思いますが、555 MB のままです。
後続のクエリはメモリ サイズを増加させません (555 MB のままです)。これは、メモリ リークではなく、子プロセスが単にメモリを解放していないという仮説を立てます。
また、Windows で Django 組み込み開発サーバーを使用して同じ一連の手順を実行すると、サイズは 500 MB になりますが、100 MB 未満に戻ります。
何か案は?