我运行的是 Windows Server 2008 RC2,上面只通过 Tornado 运行 Python Flask Web 应用程序,静态文件由 nginx 提供。就是这样。
不过,我最近确实安装了 Server Density,但很担心地发现我的内存正在缓慢地消耗。看起来像是某种泄漏。以下是一张图表:
速度相当慢,但我宁愿每 10 天重启一次 Web 服务器。是什么原因导致速度下降?我该如何找出原因?
答案1
这听起来像是典型的内存泄漏:下次重新启动时,记下各个程序的大小,然后定期重新检查并查看哪些程序正在增长。
如果是内存泄漏,那么如果没有访问所有源代码,就很难查明问题所在。如果看起来像是你的 Python 应用程序,你可以跟踪 Python 代码并查找源,但泄漏很可能在你无法访问的外部库中。
我不愿意推荐“重新启动应用程序”作为解决方案,但如果我们谈论的是两次必要重启之间至少间隔一两周,重启相对较快,您有良好的监控,并且您可以自动化它,那么它可能不是一个糟糕的短期解决方案(长期来看,您需要与您的开发人员坐在一起查找/解决问题)。