Evg*_*Evg 1 python django memory-leaks mysql-python gunicorn
我的gunicorn + django 1.5.1 + mysqldb中有内存泄漏.我开始用gc和objgraph探索我的代码
当gunicorn工人超过300mb我收集了一些统计数据:
data['sum_leak'] = sum((getsizeof(o) for o in objgraph.get_leaking_objects())) #2 mb
data['total_objects_length'] = sum((getsizeof(o) for o in gc.get_objects())) #6 mb
Run Code Online (Sandbox Code Playgroud)
因此,只有2 + 6 = 8 mb,而gunicorn工人超过300 mb.
所以我觉得问题不在python代码中,而是更深层次.
我有:gunicorn == 0.17.2 mysqldb == 1.2.4
我通过pip install将whem更新为19.0.0和1.2.5,但pip frreze显示旧版本,而gunicorn -v和mysqldb.version_info显示最后更新.
所以我想如何全部重新安装gunicorn和mysqldb以避免它完全删除旧的(可能是一些旧的基本问题)?
我也得到了pmap的一些信息:
pmap -x 805
805: /usr/bin/python /usr/local/bin/gunicorn engine.wsgi:application -b 127.0.0.1:9005 --workers=2
Address Kbytes RSS Dirty Mode Mapping
08048000 0 1444 0 r-x-- python2.7
0829e000 0 4 4 r---- python2.7
0829f000 0 204 120 rw--- python2.7
082f4000 0 44 44 rw--- [ anon ]
09947000 0 3360 3360 rw--- [ anon ]
09c91000 0 253204 253204 rw--- [ anon ]
b5500000 0 4 4 rw--- [ anon ]
b5521000 0 0 0 ----- [ anon ]
b56d5000 0 0 0 ----- [ anon ]
b56d6000 0 1552 1552 rw--- [ anon ]
b6257000 0 12 0 r-x-- libpcre.so.3.12.1
Run Code Online (Sandbox Code Playgroud)
它似乎在这里泄漏 - 09c91000 0 253204 253204 rw --- [anon]
但我不知道该怎么做.
如何解决此漏洞需要帮助?
| 归档时间: |
|
| 查看次数: |
2525 次 |
| 最近记录: |