使用Dowser在Python中追踪内存泄漏

4
我在一台运行centos操作系统的虚拟机上每晚进行一些测试。最近,这些测试占用了可用内存的所有空间以及机器上几乎所有交换内存。我将虚拟机分配的内存增加了一倍,但情况依然存在,这导致虚拟机所在的物理主机崩溃。以前这些测试只需要一半的内存就可以正常运行,因此我需要使用某种Python内存分析器来调查发生了什么。
我已经看过了PysizerHeapy,但在经过研究后,Dowser似乎是我需要的,因为它不需要对代码进行任何更改。
到目前为止,根据文档和搜索,我已经得到了下面这段代码(放在自己的类中):
import cherrypy
import dowser

class MemoryAnalyzer:

def memoryCheck(self):
    cherrypy.config.update({'server.socket_port':8080})
    cherrypy.tree.mount(dowser.Root())
    cherrypy.engine.start()

我原本希望这能呈现出文档中显示的Web界面,用于跟踪主机上所有Python实例的运行情况,但这并没有起作用。我对文档感到困惑:

   'python dowser __init__.py'. 

有可能只运行这一部分吗?我收到错误信息:
  /usr/bin/python: can't find '__main__.py' in 'dowser'
能否让dowser在虚拟机上独立运行,而不是与我的测试套件一起运行?或者我需要将上述代码实现到我的主类中来运行我的测试以跟踪python的实例?
2个回答

3
Dowser旨在作为应用程序的一部分运行。因此,无论您在何处初始化应用程序,请添加以下内容:
import dowser
cherrypy.tree.mount(dowser.Root(), '/dowser')

然后您可以浏览到http://localhost:8080/dowser以查看dowser界面。

请注意,您从文档中引用的调用是用于测试dowser的。正确的调用方式是python dowser/__init__.py


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接