我在 CentOS 上运行带有 WSGI 的 Django 1.4。Apache 是 prefork 但未配置为守护程序模式。启动 8 个子进程。我执行了一个数据库查询,使其中一个子进程(服务请求的进程)的驻留内存大小为 555 MB(从 100 MB)。在我的代码中,我使用 pyodbc 游标获取行。数据没有存储在任何地方,例如在全局变量中。
JSON 响应与序列化数据一起发送回服务器。此时,我预计驻留内存将回到 100 MB,但仍为 555 MB。
随后的查询不会增加内存大小(它保持在 555 MB) - 这让我假设这不是内存泄漏,但子进程根本没有释放内存。
此外,使用 Django 嵌入式开发服务器在 Windows 上执行相同的步骤顺序会导致大小变为 500 MB,但又恢复到 100 MB 以下。
有任何想法吗?