9 Apache和MySQL本身应该没有内存泄漏。大多数数据库服务器的运行时间越长,它们的性能就越好。但是,像PHP这样被编译到Apache中的模块经常会发生内存泄漏。 在Apache的MPM模块后,10,000个请求自动回收过程。您可以将更MaxRequestsPerChild改为其他值,但是10,000是合理的默认值。 — Brianegge source 这是什么意思:大多数数据库服务器运行时间越长,它们的性能就越好?什么更好? — tshepang 2011年
5 Apache不需要定期重启。MySQL也不应。 以prefork模式运行的Apache可以使用MaxRequestsPerChild回收其子进程。这是一件好事,因为它可以防止缓慢的内存泄漏等。 不应定期重启MySQL,因为重启它将导致服务中断。重新启动MySQL需要等待引擎启动,并且还将清除高速缓存,从而导致性能下降直到预热。我们似乎发现由于地址空间碎片,它需要不时地重新启动[1],但是在64位系统上,这种情况不会发生太多,新安装应始终如此。 [1]例如,每9个月在繁忙的服务器上,平均每秒查询100次以上 — 标记 source
3 由于性能原因,应尽可能避免重启MySQL。MySQL使用大量内存来缓存数据页和索引。当您重新启动MySQL时,所有缓存的页面都将被释放,您需要一些时间来预热缓存。在高负载的站点上,数据库重新启动可能会导致性能问题。 您的网站负载不重(每周15万次点击仅提供1req / 4s),因此MySQL重新启动不会造成大问题。 — ar source
2 为了了解何时需要重新启动系统或服务,您首先需要了解原因。内存泄漏是最常见的原因,但可能还有其他原因,例如编写不佳的软件(太普遍了!)不能执行适当的内部管理,例如在不再需要它们时关闭文件句柄。虽然与内存泄漏不同,但症状是相同的。众所周知,Apache和MySQL都非常稳定(除非您运行的是alpha或beta版本),并且可以运行数年而没有任何问题。通常,在任何一个应用程序需要使用补丁之前,操作系统都需要重新启动以应用补丁。 — 约翰·加迪尼尔 source