1
aikuzhenyan 2019-03-11 11:54:48 +08:00
建议上 gunicorn
|
2
cs8814336 OP @aikuzhenyan 恩,早有所闻,但是这个问题的话恐怕上什么应该也会重现的, 所以想要一个通用的方法来排查以后和现在的这种类似的内存泄露问题
|
3
qqxx520 2019-03-11 12:20:08 +08:00 via iPhone
uwsgi 有个参数,处理完一定数量的请求之后就重启一次
|
4
cs8814336 OP @qqxx520 感谢回答. 恩,我知道的, 假如是 uwsgi 的问题, 当然这个是完美解决的. 恐怕大几率是代码问题, 这样的话我更倾向于从根本上解决问题而不是临时解决.
|
5
jingxyy 2019-03-11 13:29:46 +08:00
查完了分享一下内存泄露的原因呗~
|
6
Ehco1996 2019-03-11 14:26:31 +08:00
看一下依赖,是不是用了什么 c 库,一般都是这个原因
|
7
chenqh 2019-03-11 18:29:28 +08:00
这个时间就有点羡慕 golang 的 go tool 了,python 里面就没有类似的吗?
|
9
cs8814336 OP 时隔多天之后, 再次搜索这个问题, 发现一个很好的工具 pyrasite.
能生成 payload 监听一个随机端口, 然后通过远程线程注入代码的方式注入到该进程让进程执行然后连接到这个随机端口,接下来可以像 python cmd 互动式操作. (就是一个黑客里面的反向 shell) 安装后使用过程有一点曲折, 但是躺过了没啥问题, 接下来可以用 objgraph 等库进行远程注入. 然后发现只能看到某个类型的占用的最大, 具体到定位到源码行还有一定的差距. 现在还在查实 |
11
cs8814336 OP 已解决
|
12
cs8814336 OP 总结文章,大家有兴趣可以看下 https://blog.csdn.net/u012087220/article/details/103716134
|