【问题标题】:Gunicorn worker doesn't deflate memory after requestGunicorn 工作人员在请求后不会缩小内存
【发布时间】:2019-01-22 19:33:38
【问题描述】:

我有一个 gunicorn 工作进程正在运行以读取一个巨大的 excel 文件,该文件最多需要 5 分钟并使用 4GB 的 RAM。但是在请求完成处理后,我在系统监视器上注意到它仍然永远分配 4GB 的 RAM。关于如何释放内存的任何想法?

【问题讨论】:

  • 简写:别担心。如果它没有被积极使用,它将被换掉;虚拟内存空间仍然分配,但其他东西将在物理内存中。许多分配器永远不会将内存释放回操作系统——它只是将它释放到一个池中,应用程序将从 malloc() 中获取更多信息未来。
  • 我对是否将其标记为 Releasing memory in Python 的副本存在分歧。无论它们是否重复,这肯定是一本非常中肯的读物。

标签: python gunicorn


【解决方案1】:

--max-requests 1 为我工作过类似的案例。

【讨论】:

  • 这只是在每次请求后重新启动工作人员。
【解决方案2】:

您可以尝试为 gunicorn worker 设置 max-requests (N) 参数,以指示在处理 N 个请求后重新启动该 worker。

您可以在此处参考有关最大请求数设置的更多信息: http://docs.gunicorn.org/en/stable/settings.html

【讨论】:

  • 感谢这个好提示。我认为不时强制重启工人是个好主意。 ;)
猜你喜欢
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
  • 2014-10-22
  • 2017-08-23
  • 2019-08-12
  • 2016-04-22
  • 2015-01-20
  • 1970-01-01
相关资源
最近更新 更多