一、背景:
因为最近碰到tornado在启动之后一段时间之内的内存占用会不断升高,并不会释放,所以猜测应该是碰到内存泄漏问题了,于是想先用python的objgraph试试看看内存泄漏情况
二、需要了解的知识:
objgraph依赖Graphviz和dot
Graphviz是Graph Visualization Software的缩写,图形可视化是一种将结构化信息表示为抽象图和网络图的方法,它在网络、生物信息学、软件工程、数据库和网页设计、机器学习以及其他领域的可视化界面中都有重要的应用,具体可参照https://www.graphviz.org
dot语言是一种文本图形描述语言。它提供一种简单的描述图形的方法,并且可以为人类和计算机程序所理解
xdot被objgraph推荐使用,xdot.py (https://github.com/jrfonseca/xdot.py) 是用Graphviz的dot语言编写的基于图形的交互式查看器,它在内部使用Graphviz的xdot的输出格式作为中间格式,Python GTK绑定,Cairo用于呈现。xdot.py 可以被用来作为命令行的独立应用程序,也可以作为嵌入在Python应用程序中的库
三、安装步骤:
1.yum install graphviz*,这个步骤安装完之后会将dot命令加入到PATH中,因为objgraph会要求能够直接使用dot命令,安装过程中可能会出现:Error downloading packages:5: guile-2.0.9-5.el7.x86_64: [Errno 256] No more mirrors to try.没有关系,重新再运行一遍即可
2.pip install xdot,安装python的graphviz和xdot包
3.pip install objgraph,安装objgraph包
4.python -c 'import objgraph; print objgraph._program_in_path("dot")', 验证是否安装正确,如果结果为True,则说明安装正确,否则请重新再确认一遍安装步骤
5. 可以再参照 https://mg.pov.lt/objgraph/ 上的例子,熟悉一下objgraph的基本使用
四、补充:
后面再跟大家一起分享解决 tornado的内存泄漏问题
领取专属 10元无门槛券
私享最新 技术干货