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