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

应该多长时间一次Apache和MySQL的重启(特别是每周有15万次点击),每隔一段时间重启会有什么好处呢?

如果您的系统已经正确调整,而且您的应用程序没有任何内存泄漏的问题,那么您只需重新启动即可应用修补程序。

Apache和MySQL本身应该没有内存泄漏。 大多数数据库服务器的运行时间越长,运行时间越长。 然而,像PHP一样编译到Apache的模块通常会有内存泄漏。

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

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

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

MySQL不应该定期重新启动,因为重新启动会导致服务中断。 重新启动MySQL需要等待引擎启动,并且还会清除caching,导致性能下降,直到升温。 我们似乎发现,由于地址空间碎片,它不时需要重新启动[1] ,但在64位系统上这不应该发生太多事情,新的安装应该始终进行。

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

出于性能原因,应尽可能避免重新启动MySQL。 MySQL使用大量内存来caching数据页面和索引。 当您重新启动MySQL时,所有caching的页面都将被释放,您需要一些时间来预热caching。 在高负载的站点数据库重新启动可能会导致性能问

你的网站不是很重(每周只有15万次访问,只有1req / 4s),所以MySQL重启不会造成很大的问题。

为了了解何时系统或服务需要重新启动,您首先需要了解为什么。 内存泄漏是最常见的原因,但也可能有其他的,比如编写不好的软件(这太常见了!),不能执行适当的内部pipe理,例如不再需要closures文件句柄。 虽然不是一样的内存泄漏症状是相同的。 已知Apache和MySQL都非常稳定(除非您正在运行Alpha版或Beta版)并且可以运行多年而没有问题。 通常情况下,操作系统在需要应用程序之前就需要重新启动应用程序。