首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python和MySQL神秘的内存泄漏

问Python和MySQL神秘的内存泄漏
EN

Stack Overflow用户
提问于 2013-07-25 13:20:00
回答 1查看 568关注 0票数 1

我正在运行一个python应用程序,它正在查询(选择) mysql db,一次读取~1k行,对它们执行计算并重复几个小时。表的读数为20m,由MyISAM发动机驱动。MySQLdb连接器用于从python访问MySQL。

问题是,几个小时后,所有服务器的内存都被使用了,服务器只有16 is内存可用。

第一个想法是python应用程序中的内存泄漏,但是memory_profiler和dozer/dowser都表明所有变量都被正确释放。

接下来,试图捕获泄漏者在内存耗尽之前和之后获取进程内存使用快照(ps、vax、vax、排序、-k8n)。

快照(按mem排序)当服务器有280 by的空闲(信息从顶部):http://pastebin.com/0F3Wht0s 2小时后.快照hen服务器只有18 had空闲(来自顶部的信息):http://pastebin.com/9MJkLX2g

令我惊讶的是,mysqld和状态计算器的内存消耗过程在时间上几乎相同。

显然,我缺少一些与linux中的内存分配有关的内容。如何查看哪个进程分配了该内存?

服务器正在运行UbuntuServer10.04,总共有1gb的内存。MySQL和MySQLdb来自ubuntu。如果需要更多的信息,我会在这里添加。

TLDR:Python经常通过选择从mysql读取。几个小时后,内存都消失了,但是top显示出mysqld或python进程的内存分配都没有增加。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-25 15:57:52

正如@ebyrob建议的那样,LinuxAteMyRam(.com)。

正如$ free -m所证实的那样,“缺失”内存曾经用于磁盘缓存,实际上也可用于应用程序。

谢谢你,伊比罗伯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17859226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档