如何解决如何减少 Python/Django 项目的内存消耗 (RAM)?
我在 Django DRF API 项目上的内存使用量随着时间的推移而增加,一旦我达到 50 多个 API 调用,RAM 就会被填满。
到目前为止我尝试过
- 预先加载所有模型和类变量
- 使用memory profiler,尽可能清理代码以减少变量使用
- 在代码开头添加了 garbage collection:gc.disable(),在代码末尾添加了 gc.enable()
- 在代码等末尾添加了 ctypes malloc.trim()
- 设置 gunicorn 最大请求数限制(这会导致更多的模型加载/响应时间)
关于如何在每个请求结束时释放内存的任何建议?
解决方法
由于 CPython 解释器管理内存的方式,它实际上很少释放任何已分配的内存。一般来说,CPython 进程的内存使用量会不断增长
由于您使用的是 Gunicorn,您可以设置 max_requests
设置,这将定期重启您的工作人员并缓解一些“内存泄漏”问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。