我有一个 Debian Wheezy VPS 盒子,在生产环境中运行几个 Django 应用程序。理想情况下,我会尝试通过优化应用程序、添加更多 RAM 或使用交换来增强内存占用问题。但问题是,我怀疑我会从优化 Django 应用程序中获得很多内存优化(堆栈是开源且强大的),并且添加 RAM 对我来说是一个成本限制(这是一个远程 VPS),而且,主机不提供使用交换的选项!
因此,与此同时(当我等待获得更多资源以提供更多 RAM 时),我希望减轻服务器耗尽内存的情况,这样我只需请求重新启动 VPS(此时,我甚至无法通过 SSH 进入盒子!)。
因此,我希望解决方案能够检测进程(或者一般来说,系统总内存使用量)何时超过某个临界量(目前,例如免费 RAM 下降到 10%)——我已经值得注意的是,VPS 运行很长时间后,某些大型应用程序的流量突然变得很大(无论如何,大多数只是临时应用程序)。
因此,我希望能够终止/重新启动有问题的进程 - 最有可能是 Apache。在这些情况下手动完成的哪种解决方案可以恢复正常的内存使用水平 - 暗示可能一个或多个 Django 应用程序存在内存泄漏?
简单来说: