Apache 和 MySQL 应该多久重启一次?

Apache 和 MySQL 应该多久重启一次?

Apache 和 MySQL 应该多久重启一次(特别是每周有 150K 次点击),每隔一定时间重启一次的实际好处是什么?

答案1

如果您的系统经过适当调整,并且您的应用程序没有内存泄漏等任何问题,那么您只需重新启动它们即可应用补丁。

答案2

Apache 和 MySQL 本身应该没有内存泄漏。大多数数据库服务器运行时间越长,运行效果就越好。但是,编译到 Apache 中的模块(如 PHP)经常会出现内存泄漏。

Apache mpm 模块在 10,000 个请求后自动回收进程。您可以将 更改MaxRequestsPerChild为其他值,但 10,000 是合理的默认值。

答案3

Apache 不需要定期重启;MySQL 也不需要。

在 prefork 模式下运行的 Apache 可以使用 MaxRequestsPerChild 回收其子进程;这是一件好事,因为它可以防止缓慢的内存泄漏等。

MySQL 不应定期重启,因为重启会导致服务中断。重启 MySQL 需要等待引擎启动,还会清除缓存,导致性能下降,直到它预热完毕。我们似乎发现它需要不时重启[1],因为地址空间碎片化,但在 64 位系统上不应该发生这种情况,新安装应该始终继续使用 64 位系统。

[1] 例如,每 9 个月在一台平均每秒查询次数超过 100 次的繁忙服务器上

答案4

为了了解系统或服务何时需要重新启动,您首先需要了解原因。内存泄漏是最常见的原因,但也可能存在其他原因,例如编写不当的软件(太常见了!)无法执行适当的内部管理,例如在不再需要时关闭文件句柄。虽然与内存泄漏不同,但症状相同。众所周知,Apache 和 MySQL 都非常稳定(除非您运行的是 alpha 或 beta 版本),并且可以运行多年而不会出现问题。通常,操作系统需要重新启动以应用补丁,而这两个应用程序在需要补丁之前很久就需要重新启动。

相关内容