1
sagaxu 2022-03-04 20:09:58 +08:00 via Android
设置 max_requests ,每处理 xx 个请求重启进程,能缓解内存泄露。每个请求结束后自动回收,只有 PHP 支持这个特性。
|
2
0ZXYDDu796nVCFxq 2022-03-04 20:12:37 +08:00 via Android
uwsgi 也可以设置 max requests 的
追踪内存使用 memory_profiler 之类的 |
3
MonTubasa OP @sagaxu 因为是想调用 sklearn 的扩展,每次启动的时候会加载 20G 左右的 model 文件,重启不知道会不会时间很慢。我先试试
|
4
sudoy 2022-03-04 22:23:40 +08:00 1
gunicorn 设置 max_requests 就可以减少内存泄漏
https://docs.gunicorn.org/en/stable/settings.html#max-requests |
7
Brian1900 2022-03-05 07:18:12 +08:00
pu 只能重启进程?没更优雅的做法了吗?比如如何找出内存泄漏
|
8
sudoy 2022-03-05 09:40:13 +08:00
@zcf0508 一些大的网站设置 max_requests = 500 ,max_requests_jitter = 200 ,这个具体要根据你的服务器配置来,因为 worker 重启的时候也是吃内存的。gunicorn 19.2 以后就引入 max_requests_jitter ,最好设置 max_requests_jitter ,不然所有 worker 同时重启会导致引发空档期,以下是一些相关文档:
https://docs.gunicorn.org/en/stable/settings.html#max-requests https://linuxtut.com/en/2668a2243a5191bcdc78/ https://stackoverflow.com/questions/24655713/gunicorn-max-requests-for-production |