【发布时间】:2020-12-31 06:43:27
【问题描述】:
我在 Django DRF API 项目上的内存使用量随着时间的推移而增加,并且一旦我达到 50 次以上的 API 调用,RAM 就会被填满。
到目前为止我尝试过
- 预先加载所有模型,类变量
- 使用memory profiler,尽可能清理代码以减少变量使用
- 在代码开头添加了garbage collection:gc.disable() 和代码末尾的gc.enable()
- 在代码等末尾添加了ctypesmalloc.trim()
- 设置gunicorn max-requests 限制(这会导致此时更多的模型加载/响应时间)
关于如何在每个请求结束时释放内存有什么建议吗?
【问题讨论】:
-
垃圾收集器只会在没有对数据的引用时从内存中删除数据。确保您确实需要减少消耗,因为如果需要,内存很可能会返回给系统。
标签: python django memory-management memory-leaks gunicorn