现在情况是这样的,今天一起来发现 aws 上 supervisor tornado 进程的内存占用好高,以前一般是一个进程 60M 左右 , 今天基本都是 400M 以上,甚至有 900M 的,有没有办法知道怎么内存泄漏了吗
1
Morriaty 2017-06-26 11:22:27 +08:00 1
python 有 gc 模块
|
2
JhZ7z587cYROBgVQ 2017-06-26 11:49:49 +08:00
查看一下有没有全局变量没删除吧?
|
4
kinghui 2017-06-26 12:31:20 +08:00 1
检查一下是否存在相互引用导致 Handler 没有被回收. 因为 Tornado 会为每一个请求构建新的 Handler 处理请求. 如果当前 Handler 的 self 传递给其他对象保存, 同时又把该对应绑定到了 self 上就会产生内存泄露.
PS. 如果没有引起 OOM 就没啥大问题. |
5
h280254082 2017-06-26 13:02:37 +08:00 1
有一个叫 meliae 的库你可以看一眼
|