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


9

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

Answers:


19

如果您的系统已正确调整,并且您的应用程序不存在内存泄漏之类的问题,则只需重启它们即可应用补丁。


9

Apache和MySQL本身应该没有内存泄漏。大多数数据库服务器的运行时间越长,它们的性能就越好。但是,像PHP这样被编译到Apache中的模块经常会发生内存泄漏。

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


这是什么意思:大多数数据库服务器运行时间越长,它们的性能就越好?什么更好
tshepang 2011年

5

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

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

不应定期重启MySQL,因为重启它将导致服务中断。重新启动MySQL需要等待引擎启动,并且还将清除高速缓存,从而导致性能下降直到预热。我们似乎发现由于地址空间碎片,它需要不时地重新启动[1],但是在64位系统上,这种情况不会发生太多,新安装应始终如此。

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


3

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

您的网站负载不重(每周15万次点击仅提供1req / 4s),因此MySQL重新启动不会造成大问题。


2

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.