我面临概念问题,我无法找到有效的解释。我有一个产品,我使用Flask和uWSGI配置。在uWSGI文档中,有一个名为
的参数MAX-请求
。如果请求计数超过为INI文件中的max-requests指定的限制,则此标志的目的是重新生成worker。该文档称它用于防止内存泄漏。令人困惑的是,Python-Flask实现了自己的内存管理和垃圾收集,并且运行得非常好。我的困惑是框架是否有自己的内存管理,为什么uWSGI正在尝试进行内存管理以防止数据泄露?
问题的第二部分是,如果重生发生,在几毫秒内,该工作人员已经接受的API需要几秒钟的时间来响应。它看起来像这样。
Response Time: 32ms
API: /api/v1.0/ping
Date: 2018-04-26 12:00:10
# respawn happens
Response Time: 7s
API: /api/v1.0/ping
Date: 2018-04-26 12:00:20
Response Time: 10ms
API: /api/v1.0/ping
Date: 2018-04-26 12:00:30
有没有更好的方法来处理这个问题,以便我现在重新生成工作人员并完全依赖Python的垃圾收集器?
这可能听起来像是一个愚蠢的问题,但如果有人能解释我uWSGI的方式和原因,它会非常有用吗?非常感谢。