我目前有一个在 Slicehost 上运行的网站。它运行的是 MySource Matrix CMS,它确实占用了相当多的资源。每隔一段时间,我就会收到来自 Slice host 的警报,说我的交换使用率非常高。而且,当我检查我的网站时,它正在爬行,有时甚至无法访问它。所以,我必须重新启动服务器,网站才能快速恢复。
我确实在 Apache 中设置了最大用户数,因为有人说这可能会有帮助。但当这种情况发生时,我就开始担心了。我们每天实际上只有大约 150 名访客,所以我认为这不是一个用户太多的问题。
目前我正在运行 256 个切片。我该怎么做才能确保这种情况不再发生?
256 切片 Debian PHP5 Apache 2
答案1
如果您频繁地使用交换分区,则意味着您的 RAM 不足。您可以将您的分区升级为具有当前设置所需资源的分区,或者您可以坐在运行 top 的盒子旁,尝试捕获消耗大量 RAM 的应用程序,以致您的分区使用交换分区。如果您可以确定哪个程序失控(它可能是一个内存管理不善的 php 程序)。
答案2
对于您描述的低流量使用情况,小计划(256MB - 384MB)应该没问题。安装 Apache 和 MySQL 时,它们的默认配置假设它们使用更多可用 RAM,这可能会导致问题。使用以下内容作为良好的起点并根据需要进行调整:
答案3
首先将 MaxClients 指令减少到您的服务器可以处理的数字,并将 MaxRequestsPerChild 设置为最佳值。您需要计算这些值,尝试找出您的 Apache 进程消耗了多少内存。这应该可以避免交换。此外,当出现此问题时,使用监控工具测量内存、CPU 和 httpd 连接数,仔细查看您的服务器发生了什么情况。