我的 VPS 帐户偶尔会用完内存。它在 Linux 上使用 Apache。支持人员表示这是一个缓慢的内存泄漏,并已启用 MaxRequestsPerChild 来处理它。
关于这个我有几个问题。当一个子进程死亡时,它会导致我的脚本丢失 session 数据吗?有人对我如何追踪此内存泄漏有建议吗?
谢谢
最佳答案
不会,当子进程终止时,您不会丢失任何数据,除非它当时正处于请求的中间(如果它因 MaxRequestsPerChild 而退出,则不应发生这种情况)。
您应该尝试在您的测试系统上使用相同的软件堆栈来重现内存泄漏。您可以使用 Valgrind 等工具尝试检测它。
您还可以尝试对您的 Web 服务器及其模块进行调试构建,这将使您能够检测到正在发生的事情。
很难在非生产系统中重现生产系统的行为。如果您对 Web 应用程序进行了自动测试覆盖,则可以尝试使用完整的自动测试套件,但实际上这不太可能覆盖所有代码路径,因此可能会错过泄漏的代码路径。
关于linux - 内存泄漏和 Apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2393614/