And*_*aev 12 python lxml memory-leaks
我正在python中编写一些蜘蛛并使用lxml库来解析html和gevent库以进行异步.我发现在经过一段时间的工作之后,lxml解析器开始占用内存高达8GB(所有服务器内存).但我只有100个异步线程,每个线程解析文件最大为300kb.
我测试并在lxml.html.fromstring中启动该问题,但我无法重现此问题.
这行代码中的问题:
HTML = lxml.html.fromstring(htmltext)
Run Code Online (Sandbox Code Playgroud)
也许有人知道它可能是什么,或锄头来解决这个问题?
感谢帮助.
PS
Linux Debian-50-lenny-64-LAMP 2.6.26-2-amd64 #1 SMP Tue Jan 25 05:59:43 UTC 2011 x86_64 GNU/Linux
Python : (2, 6, 6, 'final', 0)
lxml.etree : (2, 3, 0, 0)
libxml used : (2, 7, 8)
libxml compiled : (2, 7, 8)
libxslt used : (1, 1, 26)
libxslt compiled : (1, 1, 26)
Run Code Online (Sandbox Code Playgroud)
UP:
我为使用lxml解析器的进程设置了ulimit -Sv 500000和uliit -Sm 615000.
现在有一段时间他们开始写错误日志:
"忽略"错误"lxml.etree._BaseErrorLog._receive中的异常MemoryError:MemoryError()".
并且我无法捕获此异常,因此它会在日志中递归写入此消息,因为磁盘上有可用空间.
我怎样才能捕获这个异常以杀死进程,所以守护进程可以创建新进程?
| 归档时间: |
|
| 查看次数: |
3620 次 |
| 最近记录: |