我在CentOS上使用WSGI运行Django 1.4,Apache是Prefork但未配置为守护进程模式,启动了8个子进程。我执行了一个数据库查询,使其中一个子进程(正在处理请求的那个)的Resident Memory大小从100 MB增加到了555 MB。在我的代码中,我使用pyodbc游标获取行数据,但数据没有被存储在任何地方,例如全局变量中。
我向服务器发送一个JSON响应来返回序列化数据。此时,我希望Resident Memory回到100 MB,但它仍然是555 MB。
随后的查询不会增加内存占用大小(它保持在555 MB),这让我推测这不是内存泄漏,而是子进程没有释放内存。
同时,在Windows上使用Django嵌入式开发服务器执行相同的步骤会导致内存大小增加到500 MB,但会恢复到低于100 MB。
有什么想法吗?
我向服务器发送一个JSON响应来返回序列化数据。此时,我希望Resident Memory回到100 MB,但它仍然是555 MB。
随后的查询不会增加内存占用大小(它保持在555 MB),这让我推测这不是内存泄漏,而是子进程没有释放内存。
同时,在Windows上使用Django嵌入式开发服务器执行相同的步骤会导致内存大小增加到500 MB,但会恢复到低于100 MB。
有什么想法吗?