Apache 和 MySQL 应该多久重新启动一次(特别是每周有 150K 次点击),每隔一定时间重新启动的实际好处是什么?
Apache 和 MySQL 本身应该没有内存泄漏。大多数数据库服务器运行的时间越长,它们运行得越好。但是,像 PHP 这样被编译到 Apache 中的模块经常会出现内存泄漏。
在Apache的MPM模块后,10,000个请求自动回收过程。您可以将 更改MaxRequestsPerChild
为不同的值,但 10,000 是合理的默认值。
Apache 不需要定期重启;MySQL也不应该。
在 prefork 模式下运行的 Apache 可以使用 MaxRequestsPerChild 回收其子进程;这是一件好事,因为它可以防止缓慢的内存泄漏等。
MySQL 不应定期重新启动,因为重新启动会导致服务中断。重新启动 MySQL 需要等待引擎启动,并且还会清除导致性能下降的缓存,直到它预热。我们似乎发现它不时需要重新启动[1]因为地址空间碎片,但是在 64 位系统上这不应该发生太多,新安装应该总是继续。
[1] 例如,在繁忙的服务器上每 9 个月平均每秒查询 100 次以上