4

centos オペレーティング システムを搭載した VM で夜間にいくつかのテストを実行しています。最近、テストが使用可能なすべてのメモリと、マシン上のほぼすべてのスワップ メモリを占有しています。VM に 2 倍のメモリを割り当てましたが、まだ発生しているため、VM の物理ホスト マシンが停止します。これらのテストは、以前は半分のメモリを必要とせずに実行されていたので、何が起こっているのかを調査 するために何らかの形式の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 を VM 上のテスト スイートから独立して実行できますか? または、上記のコードをメイン クラスに実装して、テストを実行して Python のインスタンスをトレースする必要がありますか?

4

2 に答える 2

3

Dowser は、アプリケーションの一部として実行されることを意図しています。したがって、アプリケーションを初期化するたびに、次の行を追加します

import dowser
cherrypy.tree.mount(dowser.Root(), '/dowser')

次に、参照しhttp://localhost:8080/dowserて dowser インターフェイスを表示できます。

ドキュメントから引用した呼び出しは、 dowser をテストするためのものであることに注意してください。そのための正しい呼び出しはpython dowser/__init__.py.

于 2012-10-24T07:40:48.380 に答える
0

このブログhttp://www.aminus.org/blogs/index.php/2008/06/11/tracking-memory-leaks-with-dowser?blog=2を使用して、ポートを 8088 に変更して、ダウザーを動作させることができました8080 の代わりに (このマシンでは使用されていませんが、それでも動作しません!)

于 2012-10-25T09:55:46.417 に答える